Каким должен быть redirect_uri при получении токена доступа в приложении facebook? - PullRequest
24 голосов
/ 20 октября 2011
$token_url = "https://graph.facebook.com/oauth/access_token?client_id="
    . $app_id . "&redirect_uri=" . urlencode($my_url) 
    . "&client_secret=" . $app_secret 
    . "&code=" . $code;

Что такое redirect_uri?Я попытался использовать это

'https://graph.facebook.com/oauth/authorize?client_id='.$app_id.'&
redirect_uri='.urlencode($canvas_page).'&scope=email,read_stream,publish_stream';

, но оно вернулось с этой ошибкой

{
   "error": {
      "message": "Error validating verification code.",
      "type": "OAuthException"
   }
}

Нужна помощь, заранее спасибо.

1 Ответ

16 голосов
/ 20 октября 2011

Сначала я отвечу, каким должен быть ваш URL перенаправления

Перейдите на панель инструментов приложения Facebook

https://developers.facebook.com/apps

Выберите приложение из меню аккордеона слева от страницы. enter image description here

Существует URL для значения Canvas (здесь это 'http://localhost:7124', который указывает на локальный сервер.)

URL-адрес перенаправления должен быть URL-адресом внутри этого URL-адреса (сайта). то есть что-то вроде 'http://localhost:7124/home.aspx' или' http://localhost:7124/main/home.aspx'


Чтобы получить токен доступа, выполните следующие шаги

Оформить запрос на

https://www.facebook.com/dialog/oauth?client_id=CLIENT_ID&redirect_uri=REDIRECT_URL&scope=read_stream

Это предоставит вам код аутентификации пользователя (CODE) для обозначения того, что пользователь вошел в систему.

Затем с этим кодом выдайте запрос на

https://graph.facebook.com/oauth/access_token?client_id=CLIENT_ID&redirect_uri=REDIRECT_URL&client_secret=APP_SECRET&code=CODE

, который предоставит вам токен доступа в формате access_token = ACCESSTOKEN на указанный вами URL перенаправления.

ПРИМЕЧАНИЕ: URL-адрес перенаправления должен быть путем внутри URL-адреса холста приложения Facebook, и эти запросы должны отправляться из того же домена, на который указывает URL-адрес холста

...