我正在尝试在我的应用程序中实现流(新闻提要)分页功能,但它无法按预期工作。我在这里发现了很多类似的问题,但没有解决这个问题的解决方案。
我尝试了 Graph API 和 FQL,行为相似。成功获取结果一两次后,就无法获取结果(获取空的 JSON 数组)。
最后我发现这个问题取决于
access_token
。如果我只是更改源代码以使用 Android SDK Stream 示例应用程序 ID 而不是我自己的应用程序 ID 进行身份验证,则它可以完美运行。
因此,我相信 Facebook 服务器会检查应用程序 ID 并向我的应用程序返回一些奇怪或受限制的
access_token
。
获得有效
access_token
有什么条件吗?我尝试了与 Android SDK Stream 示例应用程序完全相同的权限,但无法解决问题。
更改App ID(以获得有效的
access_token
)可以解决这个问题吗?
验证您的应用程序具有
read_stream
权限。没有它,你将不会获得任何非公共对象。
FQL 和流似乎还存在一些常见的 LIMIT OFFSET 问题。请参阅 Facebook FQL 流限制? 和 http://developers.facebook.com/bugs/303076713093995。
尝试在 Facebook 上使用 SDK。然后获取访问令牌。
Android 上的一些事情:
检查 Android 附带的示例。在 onCreate() 中,我验证了 Facebook 对象
this.facebook.authorize(this, new DialogListener() {....}
使用 Facebook 的 Graph API Explorer 进行测试。
如果您粘贴一些代码,我可以帮助您进一步调试。
Facebook 服务器返回的访问令牌仅在特定时间段内有效。之后您需要刷新您的访问令牌,这是一项乏味的工作。
因此,为了避免这种情况并维护您的令牌,您需要将权限“offline_access”添加到您的权限列表中。几乎 Facebook 相关应用程序都使用这种方法。