Можно ли получить код авторизации приложения facebook из учебника Canvas, используя ajax? - PullRequest
1 голос
/ 05 декабря 2011

Это код из учебника Canvas http://developers.facebook.com/docs/appsonfacebook/tutorial/

Получает код авторизации, перенаправляет пользователя обратно на страницу холста и отображает код в URL.

Что-то вроде, http://apps.facebook.com/yourapp/?code=1234thecode5678

Итак, возможно ли сделать это с помощью ajax и получить код без перенаправления? Вместо этого метода?

Заранее спасибо

     $app_id = "YOUR_APP_ID";

     $canvas_page = "YOUR_CANVAS_PAGE_URL";

     $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
            . $app_id . "&redirect_uri=" . urlencode($canvas_page);

     $signed_request = $_REQUEST["signed_request"];

     list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

     $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

     if (empty($data["user_id"])) {
            echo("<script> top.location.href='" . $auth_url . "'</script>");
     } else {
            echo ("Welcome User: " . $data["user_id"]);
     } 
 ?>

1 Ответ

1 голос
/ 05 декабря 2011

Вы можете использовать Facebook JS SDK для входа пользователя без необходимости обновлять или перенаправлять пользователя.
Взято из документации Facebook JS SDK по теме FB.login

FB.login(function(response) {
   if (response.authResponse) {
     console.log('Welcome!  Fetching your information.... ');
     FB.api('/me', function(response) {
       console.log('Good to see you, ' + response.name + '.');
       FB.logout(function(response) {
         console.log('Logged out.');
       });
     });
   } else {
     console.log('User cancelled login or did not fully authorize.');
   }
 }, {scope: 'email'});

Примечание : Это реализация, если вы используете oAuth 2.0 (и вы действительно должны быть). Взято с того же URL:

Без OAuth 2.0 вместо области следует заменить perms, и response.authResponse заменен response.session. Помните, что все приложения должны перейти на OAuth 2.0 к 1 октября 2011 года.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...