2013-03-19 5 views
2

Я просто изучаю restfb. Я зарегистрировал приложение на сайте FB и получил идентификатор приложения и секретные ключи. Однако, согласно this tutorial, я должен иметь токен доступа для инициализации DefaultFacebookClient. Я пытался следовать инструкциям, но ни один из них не объяснил, как получить токен доступа из идентификатора приложения и секретного ключа.Как получить токен доступа FB, указанный идентификатор приложения и секрет?

Request https://graph.facebook.com/oauth/authorize?client_id=MY_API_KEY&redirect_uri=http://www.facebook.com/connect/login_success.html 

Facebook will redirect you to http://www.facebook.com/connect/login_success.html?code=MY_VERIFICATION_CODE 

Request https://graph.facebook.com/oauth/access_token?client_id=MY_API_KEY& redirect_uri=http://www.facebook.com/connect/login_success.html&client_secret=MY_APP_SECRET&code=MY_VERIFICATION_CODE 

Facebook will respond with access_token=MY_ACCESS_TOKEN 

я сделал именно это, но каждый раз, когда я получаю

{ 
    "error": { 
     "message": "Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request", 
     "type": "OAuthException", 
     "code": 100 
    } 
} 

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

ответ

3

Похоже, авторы плагина предполагают, что вы будете аутентифицировать пользователя с помощью Login Dialog или JavaScript SDK.

Оба этих метода возвращают токен доступа пользователя, который вы можете использовать. Вам нужно, чтобы ваш App_ID и Secret инициализировали их. Для большинства операций с Facebook требуется токен доступа пользователя.

Если вы делаете вызовы API исключительно для чтения общедоступных данных, вы можете уйти с токеном доступа к приложениям. Для этого вы можете использовать DefaultFacebookClient().obtainAppAccessToken() method RestFB.

+1

Я на самом деле просто пытаюсь программно получить доступ к списку моих друзей – amphibient

+0

Для этого вам нужен токен доступа пользователя. Если вы хотите играть с API, не беспокоясь об аутентификации, возьмите его из [Graph API Explorer] (https://developers.facebook.com/tools/explorer). – cpilko

+0

Я только что сделал некоторые обновления. что вы подразумеваете под «игрой с API без необходимости беспокоиться об аутентификации»? – amphibient

1

У меня была такая же проблема.

Добавление конечной косой черты к параметру redirect_uri решило проблему для меня.

Кроме того, убедитесь, что вы используете URI для своего собственного приложения, а не URI facebook при выполнении запросов.

например:

http://www.yoursite.com 

не работает для меня в то время как

http://www.yoursite.com/ 

сделал.

1

Я не уверен, если это то, что вы хотите, но в любом случае:

Чтобы получить маркер доступа для пользователей, связанных с приложением, вы можете использовать «преимущество»/счетов (см here).

Кроме того, this site about access tokens говорит, что вы можете делать звонки Graph API так: https://graph.facebook.com/endpoint?access_token=app_id|app_secret

Теперь, чтобы объединить, что, чтобы получить маркеры доступа (в формате JSON наряду с некоторыми другими вещами): https://graph.facebook.com/ { ваш идентификатор приложения здесь}/accounts? access_token = {снова, ваш идентификатор приложения здесь} | {ваш секрет приложения здесь}

Пожалуйста, замените поля в указанном выше URL и удалите из него все {и}.

Смежные вопросы