gpt4 book ai didi

android - SDK 3.0 reauthorizeForPublish() 失去读取权限?

转载 作者:行者123 更新时间:2023-11-29 18:05:32 26 4
gpt4 key购买 nike

在 Android 上使用 beta 3.0 SDK,我通过简单的 session.openForRead() 调用打开一个 Facebook session ,并具有基本权限(电子邮件)。

只要我想在用户的墙上发布消息,我就会使用 session.reauthorizeForPublish() 重新授权 session ,包括 中的新发布权限 (publish_actions) ReauthorizeRequest 对象。

一旦最后一个请求成功,调用 session.getPermissions() 只会返回最后请求的权限 (publish_actions),但会失去所有先前的读取权限 (email)。

ReauthorizeRequest的参数permission的文档中明确写着“请求的附加权限”,所以我目前不太清楚为什么session在一个请求后就失去了所有其他权限?

非常感谢,亚历克斯

最佳答案

亚历克斯,很抱歉你遇到了这个问题。这是 SDK 中的一个错误,我们正在努力在最终版本发布之前修复它。同时,您可以尝试几种解决方法。

  1. 虽然 Session 对象的权限概念与 Facebook 服务不同步,但与 Session 关联的访问 token 仍具有这些权限,并且仍可用于进行需要任何权限的 Graph API 调用已被授予(当然,除非用户随后撤销了其中任何一个)。因此,如果您的应用程序逻辑允许您忽略 Session.getPermissions() 的结果调用(例如,如果您的 UI 流程暗示用户必须在到达流程中的某个步骤之前已经授予了某个权限,那么您可以假设它存在),您可以继续进行需要这些权限的 Graph API 调用权限无关 getPermissions说 -- 关于与 token 关联的权限的真实情况存在于服务中,而不是 session 对象中。

  2. 如果您的应用逻辑需要检查是否已授予特定权限,不幸的是现在您可能需要单独跟踪权限,也许通过声明 ArrayList<String>您将新权限附加到的某个地方,可能在您的 Session.StatusCallback 中每当 session 打开时,并在 session 关闭时清除它。 (您也可以在每次状态转换为 OPENED_TOKEN_UPDATED 时调用“me/permissions”并存储结果。)这应该被视为临时解决方法,直到真正的修复可用。希望这会有所帮助。

关于android - SDK 3.0 reauthorizeForPublish() 失去读取权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13601182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com