Linkedin REST API Auth и вызов JSAPI, Rails / Omniauth - PullRequest
1 голос
/ 24 января 2012

Я потерял самообладание несколько дней назад из-за этой простой проблемы. Можете ли вы помочь мне в этом?

Полагаю, поскольку здесь написано в документации по Linkedin JS API, чтобы иметь возможность войти в систему с помощью REST и запустить вызовы с помощью JSAPI: https://developer.linkedin.com/documents/inauth-inevent-and-inui

Токены авторизации

Хотя самый простой способ аутентификации пользователя для JSAPI - это используйте одну из кнопок входа в систему, некоторые сайты реализовали OAuth 1.0a поток, используемый REST API. Какой бы тип аутентификации вы ни использовали для пользователя, JSAPI распознает, что участник уже вошли в систему, если ключ и имя хоста совпадают. Бывает автоматически, не требуя дополнительного кода от разработчика.

Но это НЕ работает, у меня странная консольная ошибка:

Cannot call method 'Profile' of undefined

когда я вызываю это сразу после аутентификации REST:

IN.API.Profile("me").fields(["id", "..."]).result(linkedin_connect_save);

Есть идеи?

Ответы [ 2 ]

1 голос
/ 25 января 2012

Эта консольная ошибка не имеет ничего общего с аутентификацией - я предполагаю, что вы загружаете другую инфраструктуру javascript, которая мешает инфраструктуре LinkedIn, а объект IN не загружается должным образом.

Следующая страница работает с ключом, который я ранее аутентифицировал, используя REST в том же браузере: http://developer.linkedinlabs.com/tutorials/testing.html

<html>
<head>
  <title>Connections App Example</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body class="yui3-skin-sam  yui-skin-sam">
<script type="text/javascript" src="http://platform.linkedin.com/in.js">
  api_key: MY_API_KEY
  onLoad: loadData
  authorize: true
</script>
<script type="text/javascript">
function loadData() {
IN.API.PeopleSearch()
       .fields("firstName", "lastName", "distance", "publicProfileUrl","pictureUrl")
       .params({"keywords": "princess", "count": 10, "sort": "distance"})
       .result(function(result) {
           alert(JSON.stringify(result));
});
}
</script>
</body>
</html>
0 голосов
/ 25 января 2012

ваш код может вызвать до загрузки JS .. включите JS, прежде чем ваш код ..

...