0

我从一位朋友那里得到了一个代码,该代码在应用程序画布上显示了应用程序用户的出生日期。

我试图更改它以呼应用户自己的 ID。它适用于我自己(创建者),也适用于我指定为开发人员的朋友。但是对于其他任何人来说,它都会引发这个错误:

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。

4

1 回答 1

0

尝试使用 SDK 的图形方法:

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

并且还可以获得登录网址,您可以使用:

$auth_url = $facebook->getLoginUrl();

文档:api()getLoginUrl()

还简化了您的代码,请参见此处

于 2012-01-18T23:09:53.730 回答