Mel*_*Mel 13 android facebook facebook-android-sdk facebook-access-token
我认为这可能会影响很多Facebook/Android开发者,但似乎没有那么多讨论这个话题......
我的问题
有没有人使用extendAccessTokenIfNeeded函数成功刷新令牌?如果确实有成功,那么设备(或仿真器)的运行版本是什么?
背景
我收到了来自Facebook的电子邮件,称从2012年5月1日起将弃用offline_access权限,Facebook建议升级到最新的SDK.精细.
我升级到最新的SDK,官方Facebook应用程序安装在我的设备上(最终!)单点登录似乎工作正常.我收到了60天的代币,再次没问题.
当我尝试使用extendAccessTokenIfNeeded(Context context,ServiceListener serviceListener)时出现问题.我无法让它刷新我的令牌更长的到期时间.我在尝试之间等了24小时,但令牌不会刷新.我可以获得刷新令牌的唯一方法是注销并登录.当我使用示例项目"Hackbook"时也会发生这种情况.
最明显的答案是我做错了什么,但是,一个错误报告被提交给Facebook说......"shouldExtendAccessToken实际上几乎总是会返回错误." 该报告已被列为优先"愿望清单".
extendAccessTokenAsNeeded()的替代方案
在关于offline_access的Facebook文档中,可以使用Graph API扩展弃用令牌.然而,这具有需要将"App Secret"包括在URL中的缺点.优点是用户不需要在他们的设备上安装官方Facebook应用程序.
其他想法和顾虑
通过将Facebook.java中的extendAccessTokenIfNeeded函数更改为始终返回true,我想我已经刷新了一次.(我说"思考"的原因是因为它不会重复这种行为,我怀疑我必须再等24小时才能再次成功)
我注意到Hackbook需要导入AndroidHttpClient.这仅适用于API 8及更高版本.这是否意味着Facebook SSO(特别是令牌刷新)只能在API 8及更高版本的设备上运行?
SDK中包含的Facebook.apk已经很老了.也许这就是为什么令牌不会在运行API 8及更高版本的模拟器上刷新的原因?
最后,所有这些只与那些安装了官方Facebook应用程序的人有关!对于那些没有官方Facebook应用程序的人来说,需要完成另一种方法(现在就抱怨!)
相关的Facebook链接
相关的Stack Overflow问题
我不了解Android开发,但是如果你对该函数有疑问,也许Android中有一个类似的CURL函数可以让你调用
https://graph.facebook.com/oauth/access_token?
client_id=APP_ID&
client_secret=APP_SECRET&
grant_type=fb_exchange_token&
fb_exchange_token=EXISTING_ACCESS_TOKEN
(谷歌透露:http://thesoftwarerogue.blogspot.com/2010/05/porting-of-libcurl-to-android-os-using.html关于如何从Android进行CURL)
| 归档时间: |
|
| 查看次数: |
1855 次 |
| 最近记录: |