Индекс разрешений Facebook перенаправляет при нажатии на другую страницу - PullRequest
0 голосов
/ 29 июля 2011

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

Вот мой код:

<?php 


$code = $_REQUEST["code"];

if(empty($code)) {
    $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" 
        . $app_id . "&redirect_uri=" . urlencode($my_url) . "&scope=email,publish_stream,offline_access";

    echo("<script> top.location.href='" . $dialog_url . "'</script>");
}

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

$access_token = file_get_contents($token_url);

$graph_url = "https://graph.facebook.com/me?" . $access_token;

$user = json_decode(file_get_contents($graph_url));

?>

Я пишу этот код на всех страницах, на которые я ссылаюсь в своем индексе.

Мой код неверен, есть проблема с сервером или что-то еще?

1 Ответ

0 голосов
/ 30 июля 2011

Содержат ли URL-адреса в ссылках на странице индекса переменную code.Если это явно не объявлено в части URL-адреса строки запроса, будет запущено диалоговое окно Oauth, и, если приложение уже установлено, пользователь будет перенаправлен на $my_url.

.ваш код вы могли бы извлечь выгоду из использования Facebook PHP SDK .Вот фрагмент кода, который использует текущий (v3.0.0) SDK, который содержит описанное выше поведение:

require 'facebook.php';

$facebook = new Facebook(array(
  'appId'  => 'YOUR_APP_ID',
  'secret' => 'YOUR_APP_SECRET',
));

$fb_user_id = $facebook->getUser();

if ($fb_user_id) {
  try {
    $user = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    $fb_user_id = null;

    $params = array(
        'redirect_uri' => $my_url,
        'scope' => 'email,publish_stream,offline_access' );

    $dialog_url = $facebook->getLoginUrl($params);

    echo("<script> top.location.href='" . $dialog_url . "'</script>");
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...