【问题标题】:Any way to get signed_request via FB PHP SDK outside of tab/app?有什么方法可以通过标签/应用程序之外的 FB PHP SDK 获取签名请求?
【发布时间】:2012-07-30 10:35:34
【问题描述】:

我一直在研究一种方法来确定用户是否喜欢特定页面,以便该页面上的选项卡可以被迷住或不喜欢。不想提示用户对user_likes进行授权,所以我避开了JS SDK,使用了PHP SDK:

<?php
require 'src/facebook.php';
$app_id = "...";
$app_secret = "...";
$facebook = new Facebook(array('appId' => $app_id, 'secret' => $app_secret, 'cookie' => true));
$signed_request = $facebook->getSignedRequest();
$like_status = $signed_request["page"]["liked"];
/* testing response */
if ($like_status) {
    /* liked content */
} else {
    /* not liked content */
}
?>

我的问题是签名请求仅在代码位于 FB 选项卡上时才传递——如果我在 FB 之外点击 PHP 页面,我什么也得不到。我想知道是否有办法在 Facebook.com 之外获取此用户信息。

【问题讨论】:

    标签: facebook facebook-graph-api oauth facebook-php-sdk facebook-authentication


    【解决方案1】:

    听起来这在 Facebook 选项卡之外是不可行的。我们已经开始在 PHP 中部署我们的选项卡,以便在用户不执行任何操作的情况下提取这些数据。

    谢谢!

    【讨论】:

      【解决方案2】:

      您可以尝试将 signed_request 保存在会话或 cookie 中,这样您就可以使用它直到它过期。之后,用户将不得不再次通过标签来更新它。当然,如果您打算使用 cookie,则应将signed_request 解码,这样没有人可以从 cookie 中找到和使用access_token

      【讨论】:

      • 谢谢,我也想到了这一点,但它仍然需要某种我想避免的身份验证。
      • 并非如此。 signed_request 无论如何都会通过。仅当您想查询 API 以获取 Like Gate 以外的其他内容时,您才需要进行身份验证。
      • 我的意思是用户必须执行一个操作(访问选项卡)才能使 signed_request 有效。
      • 这是正确的 - 用户必须通过选项卡才能获得包含 Page Like 信息的有效签名请求。除非您让用户登录并使用 FQL 在 API 中查询 Like 信息,否则没有其他方法可以获取此信息。
      猜你喜欢
      • 1970-01-01
      • 2021-02-22
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多