Использование Facebook Javascript SDK для получения данных графика - PullRequest
7 голосов
/ 08 июля 2011

ИСПРАВЛЕНО СЕЙЧАС!Но я пока не могу ответить на свой вопрос.Смотрите мой комментарий ниже.И спасибо за помощь.


Я искал, искал и читал документы и до сих пор не могу понять это.

У меня есть веб-страница о событии.Для моего мероприятия также есть публичное «мероприятие» на Facebook.Я пытаюсь использовать FB Javascript SDK, чтобы узнать количество участников мероприятия Facebook и добавить его к числу людей, зарегистрировавшихся на сайте.

Я создал приложение ииметь appID и секретную строку.Я могу получить токен доступа от:

https://graph.facebook.com/oauth/access_token?client_id=XXXX&client_secret=XXXXX&grant_type=client_credentials

, и затем я могу использовать этот токен доступа, чтобы получить участников публичного мероприятия:

https://graph.facebook.com/331218348435/attending?access_token=XXXXXXXXX

Все в порядке.

Я сейчас пытаюсь сделать то же самое, используя Javascript SDK.

Я загрузил SDK и выполнил init:

FB.init({
  appId  : 'XXXXXXXX',
  status : true, // check login status
  cookie : true, // enable cookies to allow the server to access the session
  xfbml  : true  // parse XFBML
});

и я знаю, что SDK работает, потому что я могу получить объект с данными, которым не нужен токен доступа:

FB.api( '/331218348435', function (response) { console.log ( response ) } );

, но когда я пытаюсь получить данные участника,нужен токен доступа:

FB.api( '/331218348435/attending', function (response) { console.log ( response ) } );

Я получаю OAuthException: «Требуется токен доступа для запроса этого ресурса.»

Все учебные пособия и информация, которую я могу найти, относится к использованию.login, но я не хочу, чтобы пользователь входил в систему, я хочу войти в систему, используя свой идентификатор приложения без какого-либо взаимодействия с пользователем.

Я предположил, что API принял запрос инициализации SDK и предоставил мнетокен доступа, когда я вызывал метод .init, проверка подлинности выполняется на моем сайте.ddress (реферер HTTP - да, я установил URL своего веб-сайта в настройках приложения Facebook).

Есть идеи, из-за чего это может не работать?Как я могу получить токен доступа, используя Javascript SDK, без использования .login?Я пропускаю шаг?Это вообще возможно?

Спасибо

Ответы [ 2 ]

3 голосов
/ 08 июля 2011

Формируйте то, что говорится в довольно циклической документации, для получения фида для участия требуется 'универсальный access_token`. В терминах Facebook:

Любой действительный токен доступа Любой действительный токен доступа, возвращенный нашими API. Токен доступа может быть недействительным, если, например, срок его действия истек. Никаких специальных разрешений не требуется. Иногда это называется общим access_token.

Таким образом, это означает, что вы можете использовать любой токен, который вам нравится, для доступа к каналу посещений, если событие является открытым. Кажется, что самый простой доступный токен - это токен приложения: http://developers.facebook.com/docs/authentication/#applogin. Вы можете получить этот токен, используя только свой идентификатор приложения и секрет, и никакого взаимодействия с пользователем не требуется.

Для упрощения содержимого ссылки: вы можете получить токен доступа к приложению, отправив запрос GET на

https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials 

Затем вы можете использовать этот access_token, чтобы сделать вызов для вашего списка посещений

FB.api('MyEvent/attending?access_token=ACCESS_TOKEN');
1 голос
/ 09 июля 2011

О.ОК.

По какой-то причине я ушел и поужинал, и когда я вернусь, все работает нормально.

Когда я обновил настройки своего приложения, Facebook сказал, что это может занятьнесколько минут, чтобы обойти серверы.Оказалось, заняло больше часа!

Мой код был в порядке.

Спасибо за вашу помощь.

...