分页不起作用,也许我找到了原因

时间:2012-02-15 07:49:17

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

我正在尝试将流(新闻Feed)分页功能实现到我的应用,但它无法按预期工作。我在这里发现了许多类似的问题,但没有解决方案来解决这个问题。

我尝试了Graph API和FQL,行为类似。成功获得结果一两次但在此之后,它无法获得结果(获取空的JSON数组)。

最后,我发现此问题取决于access_token。如果我只是更改源代码以使用Android SDK流示例应用程序ID而不是我自己的应用程序ID进行身份验证,那么它可以完美运行。

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

是否有条件获得有效的access_token?我尝试使用Android SDK Stream示例应用程序完全相同的权限,但它无法解决问题。

我想与遇到相同问题的任何人分享此信息,并检查更改应用ID(获取有效access_token)是否能解决您的问题。

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

FQL和流似乎也存在一些普遍的LIMIT OFFSET问题。请参阅Facebook FQL stream limit?http://developers.facebook.com/bugs/303076713093995

答案 2 :(得分:0)

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

答案 3 :(得分:0)

Android上的一些事情:

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

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

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

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