Facebook iOS SDK:刷新过期的访问令牌而不显示对话框

时间:2011-12-04 04:56:50

标签: ios facebook sdk oauth

我正在使用Facebook iOS SDK。在我的代码中,我使用默认权限授权我的应用程序,因此我的会话有效,直到到期日期为止。但是,在到期日期后,我尝试重新授权以“刷新我的OAuth令牌”,如asked before

但是,当我尝试重新授权时,会显示一个对话框,说明我已经授权了我的应用,即使我希望它只是在没有对话框的情况下更新我的OAuth令牌。根据facebook,this is possible

  

将用户重定向到auth对话框时,用户不是   如果用户已经授权您,则会提示您输入权限   应用。 Facebook会在没有任何内容的情况下为您返回有效的访问令牌   面向用户的对话

但是,我确实得到了一个对话框,我想知道如何在没有获取对话框的情况下刷新访问令牌

2 个答案:

答案 0 :(得分:5)

Facebook iOS SDK项目中最近的commit包含一个“扩展访问令牌”方法,用于扩展过期的令牌。

有关此内容以及“offline_access”弃用的更多信息,请访问Facebook Developer's blog post

答案 1 :(得分:0)

可能的解决方法是请求offline_access作为权限。然后访问令牌仅在以下时间到期:

用户退出Facebook 更改密码 通过Facebook网站撤消对您的应用的权限

如果有人有更好的答案ID也喜欢知道。请求我的应用程序的离线访问可能看起来有点可疑(即使我需要它的唯一原因是非过期访问令牌,我实际上不会在他们不使用我的应用程序时访问用户帐户。)