【问题标题】:Getting offline_access to work with Facebook获取离线访问权限以使用 Facebook
【发布时间】:2009-03-05 22:50:59
【问题描述】:

我正在使用带有 Rails 的 Facebooker 将我的应用程序连接到 Facebook。我可以指导用户完成授权过程和授予对我的应用程序的离线访问权限的过程。

我该如何离线访问信息?有没有办法请求一个不会过期的 session_key,我可以在以后使用,只要用户没有撤​​销我在 Facebook 上的应用程序的权限?

非常感谢任何帮助。建议不必针对特定的轨道。

【问题讨论】:

    标签: ruby-on-rails facebook


    【解决方案1】:

    一旦您请求并获得批准,您在 Facebook 的 HTTP POST 参数中获得的会话密钥 (fb_sig_session_key) 的离线访问将不会过期。

    您可以通过检查 fb_sig_expires 参数来检查您是否有这样的密钥,如果这是“0”,则会话密钥没有过期。

    如果你有 auth_token,那么你可以调用 getSession 来获取会话密钥并检查 expires 字段:

    var auth = _auth.getSession(AuthToken);
    string sessionKey = auth.session_key;
    long uid = auth.uid;
    bool expires = auth.expires > 0;
    

    【讨论】:

    • 嗨,马克-感谢您提供的信息。您是否知道在您被授予离线访问权限后会话密钥是否更改?在 Facebooker 中,我取回的会话密钥似乎与我开始使用的会话密钥相同,并且具有过期时间。马特
    【解决方案2】:

    我刚刚在我的博客上创建了tutorial,并逐步解释了如何访问离线用户的数据。它假定您正在使用 RoR 和 Facebooker 插件。

    【讨论】:

      【解决方案3】:

      编辑:apparently,授予“offline_access”仍然会给您(并将继续这样做)无限会话密钥。只需保存此特殊密钥并在调用 Status.get 等时使用它。请参阅 here 以获取 (PHP) 代码示例。

      http://wiki.developers.facebook.com/index.php/New_Design_User_Login

      许多 API 调用不再需要 会话密钥

      因此,如果您的应用被授予离线访问权限,您可以在没有 session_key 的情况下使用 API 调用 listed here

      我们正在更改更多方法,以便您 不需要会话密钥 当用户离线时, 比如发送通知。

      【讨论】:

      • 感谢有关不需要会话密钥的功能的信息。不幸的是,我需要的方法需要一个不会过期的 session_key。
      • User.getSession 方法。我正在尝试检索他们的状态更新流。
      • 感谢您的编辑。我需要查看 facebooker 代码,因为我在授予离线访问权限后获得的会话密钥仍然有到期日期。我怀疑一旦授予离线访问权限并且 facebooker 没有更新它,facebook 会发布一个新的会话密钥。
      【解决方案4】:

      一旦您获得用户的离线访问权限,诀窍就是使用“网络”的filter_key 参数进行调用。

      在 PHP 中是:

      $feed = $facebook->api_client->stream_get($uid, '', '', '', 20, 'network', '');
      

      试试吧,它有效....

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多