#javascript #linkedin #linkedin-api
#javascript #LinkedIn #linkedin-api
Вопрос:
Я пытаюсь использовать LinkedIn api с JavaScript (я новичок в этом …). Вот мой простой код:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://platform.linkedin.com/in.js">
api_key: XXXXXXXXXXXXXXXXX
authorize: true
onLoad: onLinkedInLoad
</script>
<script type="text/javascript">
// Setup an event listener to make an API call once auth is complete
function onLinkedInLoad() {
IN.Event.on(IN, "auth", getProfileData);
}
// Handle the successful return from the API call
function onSuccess(data) {
console.log("onSuccess() " data);
console.log(data);
}
// Handle an error response from the API call
function onError(error) {
console.log("onError() " JSON.stringify(error));
console.log(error);
}
// Use the API call wrapper to request the member's basic profile data
function getProfileData() {
console.log(IN.User.isAuthorized());
IN.API.Raw("/people/~").result(onSuccess).error(onError);
}
</script>
<script type="in/Login">
Welcome, <?js= firstName ?> <?js= lastName ?>.
</script>
</head>
<body>
</body>
</html>
Я взял это почти как есть из документации.
Я вижу распечатки, но не вижу профиль. Что я делаю не так?
Я написал действительный домен SDK какhttp://localhost:63342 потому что это то, что использует WebStorm.
P.S. Я также получаю предупреждение ошибку «Неразрешенная переменная или тип …» для IN, API, Even и Raw.
Обновление: я вижу в консоли браузера:
message:"Could not find person based on: ~"
requestId:"4VCQPKNS5G"
status:404
timestamp:1477219009923
Мне кажется, что часть аутентификации проходит хорошо, но после этого где-то еще происходит сбой…
Обновление 2: Я немного изменил код, в основном для использования консоли.журнал вместо document.write и добавлен дополнительный журнал для IN.User.isAuthorized().
Комментарии:
1. Авторизовали ли вы приложение (через всплывающее окно входа)? Я не вижу вызовов
IN.User.authorize()
. Если нет, то что вызвалоgetProfileData()
запуск?2. Насколько я понимаю, getProfileData() вызывается из onLinkedInLoad, и авторизация происходит из-за authorize: true, и я добавил document.write(В.User.isAuthorized() «<br>»); к getProfileData(), который возвращает true.
3. Во-первых, постарайтесь избегать
document.write()
в пользуconsole.log()
,console.warn()
и т. Д. Попробуйте выйти из системы пользователя (IN.User.logout()
из консоли), а затемIN.User.authorize(callbackFunction, callbackScope);
. Это должно создать всплывающее окно и позволить вам войти в систему и авторизовать приложение.4. Я имею в виду, что это выглядит так, что «/ people / ~» анализируется как человек
~
вpeople
ресурсе. Ошибка, которую он выдает, заключается в том, что он не знает, как использовать~
для разрешения person.5. Тогда я понятия не имею, почему вы получаете этот ответ, хотя я мог бы найти ссылки на него. Возможно, у вашего пользователя отсутствуют некоторые поля по умолчанию (для меня: имя, фамилия, заголовок (должность в компании)). И, пожалуйста, не воспринимайте этот код как какой-либо пример того, как должно выглядеть современное приложение JavaScript сегодня.