我正在尝试将流(新闻Feed)分页功能实现到我的应用,但它无法按预期工作。我在这里发现了许多类似的问题,但没有解决方案来解决这个问题。
我尝试了Graph API和FQL,行为类似。成功获得结果一两次但在此之后,它无法获得结果(获取空的JSON数组)。
最后,我发现此问题取决于access_token
。如果我只是更改源代码以使用Android SDK流示例应用程序ID而不是我自己的应用程序ID进行身份验证,那么它可以完美运行。
所以,我相信facebook服务器会检查应用程序ID并将一些奇怪的或受限制的access_token
返回给我的应用程序。
是否有条件获得有效的access_token
?我尝试使用Android SDK Stream示例应用程序完全相同的权限,但它无法解决问题。
我想与遇到相同问题的任何人分享此信息,并检查更改应用ID(获取有效access_token
)是否能解决您的问题。
答案 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上的一些事情:
检查带有android的示例。在onCreate()中,我验证Facebook对象
this.facebook.authorize(this,new DialogListener(){....}
使用Facebook的Graph API Explorer进行测试。
如果您粘贴了一些代码,我可以帮助您进一步调试。