facebook iframe 应用程序:获取签名请求并且 ['page']['admin'] 返回 false。为啥?

Posted

技术标签:

【中文标题】facebook iframe 应用程序:获取签名请求并且 [\'page\'][\'admin\'] 返回 false。为啥?【英文标题】:facebook iframe app: getSignedRequest and ['page']['admin'] returns fasle. Why?facebook iframe 应用程序:获取签名请求并且 ['page']['admin'] 返回 false。为什么? 【发布时间】:2015-07-02 00:43:26 【问题描述】:

我有一个 iframe (tab) facebook 应用程序,当有人访问它时(只是)执行:

require_once 'src/facebook.php';
$config=array("appId"=>"xxxxxx","secret"=>"yyyyyy",'cookie' => true);   
$facebook = new Facebook($config);
$user_id=$facebook->getUser();

if($user_id)

    $signed_request = $facebook->getSignedRequest();
    echo "SIGNED_REQUEST: ";
    var_dump($signed_request);  

else

  echo "Error. No user..."

我认为 admin 是假的。在这个测试用例中,是我访问了我的标签应用程序。 rem:我有一个此应用程序的业务经理,以便为业务(uniq id)获取用户令牌,并且我具有此应用程序的管理员角色。 但是,当我访问应用程序时 ['page']['admin'] 返回 false。为什么 getSignedRequest 不承认我是管理员?

【问题讨论】:

您是页面的管理员吗? 当然!它是我创建的 并且您使用自己的个人 user 帐户登录 Facebook,并且您实际上是在使用 Facebook as 该用户帐户,而不是“作为页面”,还是通过其他类型的帐户登录(因为您出于某种原因提到了业务经理和业务令牌)? Rem:我的个人帐户凭据和我的 Facebook 业务/业务经理凭据相同)。如果我从我的个人帐户和业务经理注销并登录个人帐户管理员是错误的。如果我注销个人帐户并登录业务经理管理员是真的。似乎该页面现在属于业务经理而不是个人帐户...这对我来说是解决问题的大事...现在事情有点清楚了...好吧,如果我正在开发应用程序登录业务经理并暂时忘记个人帐户是有意义的。谢谢!! 【参考方案1】:

.. 我有这个应用程序

的管理员角色

如果用户/查看者是页面的管理员,此字段将返回 true。 See:

true 如果加载用户是页面管理员,false 如果不是。

【讨论】:

因此,API 有一个错误,因为我是管理员,但它显示为 false

以上是关于facebook iframe 应用程序:获取签名请求并且 ['page']['admin'] 返回 false。为啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何在简单的 iframe 选项卡中提示用户访问用户 ID?

Facebook:获取会话密钥时获取不正确的签名 (104)

上传应用至Google Play 后被重新签名,怎么获取最新的签名信息

Facebook:发送 iOS 访问令牌服务器端并使用 App Secret 签名

Facebook:当用户点击粉丝页面上的“喜欢”按钮时获取

在 Facebook 应用程序选项卡中将值传递给 iframe