Canvas приложение, чтобы передать идентификатор пользователя обратно к ним.Пытался часами - PullRequest
0 голосов
/ 19 января 2012

Мне дали код от друга, который отображал дату рождения пользователей приложения на холсте приложения.

Я попытался изменить его, чтобы отобразить собственный идентификатор пользователя. Это работает для меня (создателя), и это также работает для друга, которого я назначил разработчиком. Но для всех остальных возникает эта ошибка:

Warning: file_get_contents(https://graph.facebook.com/me?
fields=id&access_token=228073413942115|460d2e1ffd0b4cc6b5cb480d53f60d6e)
[function.file-get-contents]: failed to open stream: HTTP request failed! 
HTTP/1.0 400 Bad Request in /home/robsdmr/public_html/fb/index.php on line 34

Код выглядит следующим образом.

<?php
require_once("src/facebook.php");

$app_id = "xxxxxxxxxx";
$app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
$canvas_page = "https://apps.facebook.com/roblewtest/" .$app_id;


$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true,
));

$access_token = $facebook->getAccessToken();


$auth_url = "https://www.facebook.com/dialog/oauth?scope=user_id&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 {

}

$graph_url = "https://graph.facebook.com/me?fields=id&access_token=" . $access_token;
$result = json_decode(file_get_contents($graph_url));

echo "{$result->id}"

?>

Я довольно новичок в этом, так что указатели были бы великолепны

У меня такое чувство, что я не совсем разбираюсь в сферах, но мне действительно нужна эта работа.

Большое спасибо, ребята и девочки.

R.

1 Ответ

0 голосов
/ 19 января 2012

Попробуйте использовать метод графика SDK:

$result = $facebook->api('/me?fields=id');

А также для получения URL-адреса входа в систему вы можете использовать:

$auth_url = $facebook->getLoginUrl();

Документация: api () , getLoginUrl ()

Также упростил ваш код, см. здесь .

...