FB не возвращает access_token для моего приложения, сообщение об ошибке не указано. - PullRequest
0 голосов
/ 08 февраля 2012

Это мое первое приложение на FB, интеграция с веб-сайтом, и я не могу получить пример php-кода FB для возврата access_token.

Я проверил: - экраны настройки приложения на developer.facebook.com выглядят нормально(без предупреждений или ошибок) - включите последнюю версию github на facebook.php на странице - app_id и app_secret верны

Код ниже скопирован из документации FB, но $response ничего не возвращает и $user->name пусто.

Кто-нибудь может мне здесь помочь?Есть ли метод отладки, который может сказать мне, почему не удается получить access_token?

$token_url = "https://graph.facebook.com/oauth/access_token?"
   . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
   . "&client_secret=" . $app_secret . "&code=" . $code;

 $response = @file_get_contents($token_url);

 $params = null;
 parse_str($response, $params);

 $graph_url = "https://graph.facebook.com/me?access_token=" 
   . $params['access_token'];

 $user = json_decode(file_get_contents($graph_url));
 echo("Hello " . $user->name)."<br>";

1 Ответ

1 голос
/ 08 февраля 2012

Вместо приведенного выше кода попробуйте следующий

<?php 

require_once 'library/facebook.php';

// Create our Application instance.
$facebook = new Facebook(array(
  'appId' => 'app id',
  'secret' => 'secret',
  'cookie' => true,
)); 

     $app_id = '149865361795547';

     $canvas_page = "canvas page link ";

     $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
            . $app_id . "&redirect_uri=" . urlencode($canvas_page) . ("&scope=email,read_stream&response_type=token");

     $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 {

    //get the user access token
            $atoken = $facebook->getAccessToken();
            echo "</br>" . 'User Access_Token:' . $atoken;

     //get the user id 
            $UserId = $data["user_id"];
            echo 'UserId;' . $UserId;
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...