2012-11-23 29 views
0

新的Facebook SDK为Android(3.0)已经过时了很多的老方法,包括setAccessToken方法。造成这种情况的更换(我认为)是方法openWithImportedAccessToken如何使用在新的Facebook SDK的方法“openWithImportedAccessToken”为Android 3.02

https://developers.facebook.com/docs/reference/android/3.0/Session#openWithImportedAccessToken(String, Date, Date, AccessTokenSource, List, StatusCallback)

有没有人有任何使用这个例子?特别是如何获得访问令牌的到期时间和上次刷新时间?

回答

1

如果你有特定参数的数据,也有合理的默认值,你可以在这里填写导致次优的,但并非太糟糕行为。

请记住,在升级到3.x Android SDK之后,您应该只调用此API 第一个,以便从之前存储它的位置导入令牌。之后,SDK默认管理令牌缓存。因此,任何次优行为应该是本次升级的一次本地化。

提供你知道的数据。因为你不知道是什么,它主要是没关系规定:

  • 的有效期限为60天,从现在
  • 现在最后更新时间为
  • 的AccessTokenSource是FACEBOOK_APPLICATION
  • 的权限列表为空

请注意,如果您始终要求相同的权限并因此知道旧令牌具有的权限,请使用这些权限。

这是更好,如果你能为这些参数提供正确的值,但缺点通常并不可怕。这里有不利之处躺在这个API:

  • 指定的坏处是,过期时间晚于它是:如果令牌已过期,您可提出不管怎样,有Facebook的服务回报的错误,而不是立即在客户端发现它。
  • 指定的最后更新的时间的不足之处是最近的比它:SDK会尝试刷新第一个请求令牌,而不是等待24小时。
  • 将AccessTokenSource指定为FACEBOOK_APPLICATION的缺点:如果令牌来自WebView,则SDK将尝试刷新令牌,并且操作将失败。最终令牌将过期,并且后续登录将更正AccessTokenSource值。
  • 指定空权限的缺点:当您要执行操作时,您应该检查您是否有权执行操作,如果没有,您应该调用Session.reauthorize()来请求权限。如果您调用openWithImportedAccessToken()时使用空列表(或实际拥有更少的权限),那么您会认为您没有权限,并会再次询问用户是否有权限。只要这是用户在执行预期此权限的操作的上下文中,这对用户来说应该不会太刺激。
1

我们的文档here告诉您如何检索/调试访问令牌检索元数据,如过期和单据出具。如果事先没有这些字段,可以使用此端点。

相关问题