我正在使用Facebook iOS SDK。在我的代码中,我使用默认权限授权我的应用程序,因此我的会话有效,直到到期日期为止。但是,在到期日期后,我尝试重新授权以“刷新我的OAuth令牌”,如asked before。
但是,当我尝试重新授权时,会显示一个对话框,说明我已经授权了我的应用,即使我希望它只是在没有对话框的情况下更新我的OAuth令牌。根据facebook,this is possible:
将用户重定向到auth对话框时,用户不是 如果用户已经授权您,则会提示您输入权限 应用。 Facebook会在没有任何内容的情况下为您返回有效的访问令牌 面向用户的对话。
但是,我确实得到了一个对话框,我想知道如何在没有获取对话框的情况下刷新访问令牌。
答案 0 :(得分:5)
Facebook iOS SDK项目中最近的commit包含一个“扩展访问令牌”方法,用于扩展过期的令牌。
有关此内容以及“offline_access”弃用的更多信息,请访问Facebook Developer's blog post。
答案 1 :(得分:0)
可能的解决方法是请求offline_access作为权限。然后访问令牌仅在以下时间到期:
用户退出Facebook 更改密码 通过Facebook网站撤消对您的应用的权限
如果有人有更好的答案ID也喜欢知道。请求我的应用程序的离线访问可能看起来有点可疑(即使我需要它的唯一原因是非过期访问令牌,我实际上不会在他们不使用我的应用程序时访问用户帐户。)