首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >facebook $facebook->getSignedRequest();错误

facebook $facebook->getSignedRequest();错误
EN

Stack Overflow用户
提问于 2011-05-27 02:39:33
回答 5查看 12.4K关注 0票数 3

我正在尝试将这个脚本添加到我在facebook上的iframe应用程序中,但它似乎不起作用:

代码语言:javascript
复制
    $signed_request = $facebook->getSignedRequest();
$like_status = $signed_request["page"]["liked"];
// If a fan is on your page
if ($like_status) {
echo 123;
} else {
// If a non-fan is on your page
echo 456;
}

我放置了正确的应用程序id和密钥,并以正确的方式调用facebook.php。我没有收到任何错误或警告,只是脚本无法工作。

$like_status不返回任何内容

脚本改变了吗?有没有其他版本?谢谢

编辑。更多代码:

代码语言:javascript
复制
<?php
require 'facebook.php';
$app_id = "11549508592";
$app_secret = "d898cb58b16f2aaaaaaaaaaaaaa";
$facebook = new Facebook(array(
    'appId' => $app_id,
    'secret' => $app_secret,
    'cookie' => true
));
$signed_request = $facebook->getSignedRequest();
$like_status = $signed_request["page"]["liked"];
echo "<br>like status = $like_status";
?>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-27 05:38:27

当从facebook调用时,Facebook会将签名的请求发送到您的页面。

所以:

代码语言:javascript
复制
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
票数 3
EN

Stack Overflow用户

发布于 2011-08-26 01:15:22

不久前我也遇到过类似的问题--解决方案是为tab或/和canvas页面指定完整的url来接收签名请求。

示例:使用http://myapp.com/myapp/index.php,isntead of http://myapp.com/myapp/

票数 10
EN

Stack Overflow用户

发布于 2011-10-05 05:51:33

如果你的画布(或页面标签)地址不是最后的地址,$_REQUEST['signed_request']可能是空的,因为Facebook只发布一次签名的请求。重定向时,发送的值会丢失。

如果您可以控制重定向,则将?signed_request=$_REQUEST['signed_request']添加到重定向的URL (您可能还需要传递其他自定义GET参数)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6143468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档