0

这很奇怪,因为在我的 facebook 应用程序的画布页面上,我收到了关于我的 auth_token 的所有这些 php 错误,然后它会重定向并按应有的方式工作。有人可以帮我解决这个问题吗?这是页面顶部的我的php代码:

$app_id = "181247432419054";
$app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$my_url = "https://apps.facebook.com/wellnessq/";
session_register();
session_start();


if (!isset($_REQUEST["code"]))
{
 $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
 $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" 
   . $app_id . "&redirect_uri=" . urlencode($my_url) . "&scope=email&state="
   . $_SESSION['state'];

 echo("<script> top.location.href='" . $dialog_url . "'</script>");
 }
 $code = $_REQUEST['code'];
{
 $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));
}

?> 

第一条错误消息从 $code = $_REQUEST['code']; 开始 然后是几个。我无法发布屏幕截图,因为我的声望点太少 =/ grrr 但这是错误消息:

注意:未定义索引:D:\Extranet\www.mysite.com\manager\here\core.functions.php(663) 中的代码:第 19 行的 eval() 代码

警告:file_get_contents(https://graph.facebook.com/oauth/access_token?client_id=181247432419054&redirect_uri=https%3A%2F%2Fapps.facebook.com%2Fwellnessq%2F&client_secret=xxxxxxxxxxxxxxxxx&code=) [function.file-get-contents] :打开流失败:HTTP 请求失败!D:\Extranet\www.mysite.com\manager\here\core.functions.php(663) 中的 HTTP/1.0 400 错误请求:第 25 行的 eval() 代码

注意:未定义索引:D:\Extranet\www.mysite.com\manager\here\core.functions.php(663) 中的 access_token :第 30 行的 eval() 代码

警告:file_get_contents(https://graph.facebook.com/me?access_token=) [function.file-get-contents]:未能打开流:HTTP 请求失败!D:\Extranet\www.mysite.com\manager\here\core.functions.php(663) 中的 HTTP/1.0 400 错误请求:第 32 行的 eval() 代码

谢谢!

4

1 回答 1

0

您需要exit;在回显<script>标签后立即添加一条语句。我在很多 Facebook 示例代码中都注意到了这种疏忽。通常它不会引起太大问题,但是一旦您确定需要重定向,您应该确保停止做任何其他事情并给浏览器时间来处理重定向脚本。

于 2011-10-05T23:44:26.413 回答