2010-05-03 2 views
8

Я создаю сайт для группы комедий, которая использует Facebook как одну из своих маркетинговых платформ; одним из требований для нового сайта является отображение всех своих событий в Facebook в календаре.Получение моих собственных данных через FaceBook API

В настоящее время я просто пытаюсь собрать сценарий Python, который может вытащить некоторые данные из моей учетной записи Facebook, как список всех моих друзей. Я предполагаю, что как только смогу это сделать, я могу перейти к выведению более сложных данных из учетной записи моих клиентов (поскольку они дали мне доступ к их учетной записи).

Я просмотрел многие сообщения здесь, а также просмотрел документацию по API Facebook, в том числе Facebook Connect, но я действительно избиваю голову против стены. Все, что я прочитал, кажется излишним, поскольку это связано с созданием большой инфраструктуры, позволяющей моему приложению настраивать соединения с любой учетной записью произвольного пользователя (кто меня уполномочивает). Не должно ли это быть намного проще, учитывая, что мне только нужно получить доступ к 1 учетной записи?

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

Буду признателен за любые советы или ссылки, я просто чувствую, что мне не хватает чего-то простого.

Спасибо!

ответ

2

Это правда, что API Facebook предназначен для разработчиков, которые создают приложения, которые будут использоваться многими пользователями.

К счастью, новый графический API гораздо проще в использовании, чем его предшественник, и с ним не должно быть сложно работать без использования или создания множества базовых инфраструктур.

: необходимо выполнить авторизацию, но это не сложно, и до тех пор, пока вы запрашиваете у пользователя разрешение offline_access, его нужно будет сделать только один раз.

Документация по адресу Desktop Authentication, вероятно, будет наиболее актуальна для вас в данный момент, хотя вы можете перейти к аутентификации на основе javascript, как только у вас появится веб-приложение.

После аутентификации все, что вы делаете, делает запросы GET на различные URL-адреса и работает с полученным JSON.

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

+0

Спасибо, Даниэль, и всем, сегодня я собираюсь провести время, глядя на обе ссылки, которые вы выложили, на Connect и авторизацию разрешения offline_access. Я снова опубликую, что я нахожу, если кто-то другой будет искать этот вопрос. Еще раз спасибо! – goggin13

0

Я не эксперт в Facebook/Facebook Connect, однако я видел, как он использовал/использовал приложения, и кажется, что действительно существует только «официальный» способ сделать это. Боюсь, похоже, что ваш лучший выбор, вероятно, будет чем-то вроде этого.

http://wiki.developers.facebook.com/index.php/Connect/Authentication_and_Authorization

Независимо от того, как вы на самом деле «использовать» это, вам все равно нужно авторизовать приложение для подключения к учетной записи, и это означает наличие приложения Facebook, а также.

0

Ответ на аутентификацию приложения Facebook трудно найти, но на самом деле находится на странице «Аналитика» API-интерфейса Graph. Укажите следующее: https://graph.facebook.com/oauth/access_token?client_cred&client_id=yourappid&client_secret=yourappsecret, после этого вам будет предоставлен access_token, который вы можете использовать для всех других вызовов.

API, предоставленный Facebook, в настоящее время не обеспечивает такой уровень функциональности.

7

Просто опубликуйте свои заметки об успешном совете, если другие найдут это сообщение;

По рекомендации Даниэля и Уильяма, я получил правильные разрешения с помощью опций Connect. От Уильяма, эта связь объясняет, как связь Facebook работает

https://developers.facebook.com/docs/authentication/

Этот раздел о настройке фактической аутентификации было самым полезным для меня. http://developers.facebook.com/docs/api

В основном, он выглядит следующим образом: Отправьте ссылку на следующий URL-адрес. Пользователь должен физически щелкнуть по нему (даже если этот пользователь только вы, администратор сайта). https://graph.facebook.com/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=http://www.example.com/HANDLER

Это перенаправит вход в систему Facebook, которая вернется к http://www.example.com/HANDLER после того, как пользователь будет аутентифицироваться. Если вы хотите сделать больше, чем базовые чтения и обновления новостей, вам нужно будет включить эту переменную в приведенную выше ссылку: scope = offline_access, user_photos. Переменная области просто включает в себя список значений, разделенных запятыми, которые Facebook явно укажет аутентифицирующему пользователю во время процесса входа в систему, и они должны будут ОК. Наиболее полезным для меня был флаг offline_access (user_photos позволяет вам также просматривать свои фотографии), поэтому я могу вытащить контент без регулярного входа в систему (пока я сохраняю токен доступа, полученный позже)

Есть сценарий, расположенный по адресу http://www.example.com/HANDLER, который примет переменную из запроса (так что facebook будет перенаправлен на http://www.example.com/HANDLER&code=YOUR_CODE после аутентификации). Ваш обработчик должен вытащить переменную кода, а затем отправить следующий запрос: https://graph.facebook.com/oauth/access_token?
client_id = YOUR_CLIENT_ID &
redirect_uri = http://www.example.com/oauth_redirect&
client_secret = YOUR_SECRET_KEY &
код = YOUR_CODE

Этот запрос возвращает строку вида access_token = YOUR_ACCESS_TOKEN.

Просто разобрать выключить «access_token =», и вы будете иметь маркер, который можно использовать для доступа к facebook графа API, в запросах как http://graph.facebook.com/me/friends?access_token=YOUR_ACCESS_TOKEN Это возвращает объект JSON, содержащий все из ваших друзей

Надеюсь, что это сэкономит кому-то еще какое-то нелегкое время, напрягая документацию. Спасибо за помощь!