gpt4 book ai didi

Facebook Canvas 身份验证 : No signed_request parameter after redirect

转载 作者:行者123 更新时间:2023-11-30 05:27:16 25 4
gpt4 key购买 nike

在我的 Canvas 页面中,我尝试按照 http://developers.facebook.com/docs/guides/canvas/ 中描述的方式对用户进行身份验证,基本上使用这段代码(来自 developers.facebook.com 的示例代码):

<?php 

$app_id = "YOUR_APP_ID";

$canvas_page = "YOUR_CANVAS_PAGE_URL";

$auth_url = "http://www.facebook.com/dialog/oauth?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 {
echo ("Welcome User: " . $data["user_id"]);
}

?>

问题是,用户第一次授权我的 canvas 应用程序时,Facebook 在重定向返回时不会传递 signed_request 参数(如示例代码中所述),而是传递 code 参数。第二次访问应用程序时(已经确认权限),它按预期传递了一个signed_request参数。

为什么第一次传一个code参数?该文档没有解释 Facebook 何时传递 code/signed_request 参数。

最佳答案

问题是对于 $canvas_page,我使用了 Canvas URL(例如 mysite.com/canvas)而不是 Canvas 页面 URL(例如 apps.facebook.com/myapp)。

关于Facebook Canvas 身份验证 : No signed_request parameter after redirect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6898713/

25 4 0