【问题标题】:Paging does not work and maybe I found the cause分页不起作用,也许我找到了原因
【发布时间】:2012-03-06 13:46:12
【问题描述】:

我正在尝试为我的应用程序实现流(新闻源)分页功能,但它没有按预期工作。我在这里发现了很多类似的问题,但没有解决这个问题的解决方案。

我尝试了 Graph API 和 FQL,并且行为相似。成功获取结果一两次,但之后就无法获取结果(获取空的JSON数组)。

最后,我发现这个问题取决于access_token。如果我只是将源代码更改为使用 Android SDK Stream Example App ID 而不是我自己的 App ID 进行身份验证,它可以完美运行。

所以,我相信 facebook 服务器会检查应用 ID 并向我的应用返回一些奇怪或受限的 access_token

有什么条件可以得到有效的access_token?我尝试了与 Android SDK Stream 示例应用完全相同的权限,但它无法解决问题。

我想与面临相同问题的任何人分享此信息,并检查更改 App ID(以获得有效的access_token)是否可以解决您的问题。

【问题讨论】:

  • 你能提供一些你现在正在使用的示例代码吗?不清楚你在做什么。
  • 你的应用请求什么权限?

标签: android facebook-graph-api paging facebook-fql


【解决方案1】:

Facebook 服务器返回的访问令牌仅在特定时间段内有效。之后你需要刷新你的访问令牌,这是一项乏味的工作。因此,为了避免这种情况并维护您的令牌,您需要将权限“offline_access”添加到您的权限列表中。这是几乎与 Facebook 相关的应用程序使用的方法。

【讨论】:

    【解决方案2】:

    验证您的应用具有read_stream 权限。没有它,您将不会获得任何非公共对象。

    FQL 和流似乎也存在一些一般性的 LIMIT OFFSET 问题。见Facebook FQL stream limit?http://developers.facebook.com/bugs/303076713093995

    【讨论】:

      【解决方案3】:

      使用 facebook sdk for android。可以找到here。有 getter 和 setter 方法来获取和设置访问令牌。第一次执行单点登录 (SSO) 时,您必须将访问令牌保存在 SharedPreferences 中,并且无需一次又一次地重新进行身份验证。只需根据您的偏好设置访问令牌并拨打feed dialog。不推荐使用 offline_access 权限。用于 android 的 facebook sdk 完成了其余的工作。只需通过 Bundle 提供足够的参数即可。

      【讨论】:

        【解决方案4】:

        Android 上的几件事:

        • 获得正确的权限“read_stream”
        • 使用安卓 SDK
        • 检查带有 android 的示例。在 onCreate() 中,我验证 Facebook 对象

          this.facebook.authorize(this, new DialogListener() {....}

        • 使用 Facebook 的 Graph API Explorer 进行测试。

        如果您粘贴一些代码,我可以帮助您进一步调试。

        【讨论】:

          猜你喜欢
          • 2023-02-11
          • 2021-05-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多