我在常规 SO 上发布了一个非常相似的问题,但后来发现了 facebook SO。
如果我从facebook 画布教程页面复制并粘贴此代码:
<?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"]);
}
?>
如果 $auth_url 从未被调用,我怎么能得到signed_request?或者,也许我不懂 PHP。它创建了 $auth_url 但永远不会去获取它,所以 $signed_request 永远不会被填充。我究竟做错了什么?
编辑:这是因为我很愚蠢,没有通过 apps.facebook.com 访问它,而是去http://mydomain.com ...