我正在尝试启用服务器端脱机访问Google API,用户通过iOS应用进行身份验证。这是为了允许服务器持续访问iOS应用程序之外的Google API。
Google记录了以下方法: https://developers.google.com/identity/sign-in/ios/offline-access
我完全按照准系统项目跟踪他们的文档。但是,每当我尝试交换访问和刷新令牌的一次性授权代码时,我在交换期间收到'redirect_uri_mismatch'错误。
我搜索了论坛,并且许多人建议配置Google API项目OAuth 2.0客户端ID(来自Google开发者控制台),没有重定向URI。但是,这会导致错误'缺少属性“redirect_uris”在客户端类型“web”中
我还尝试了其他OAuth 2.0客户端ID类型(例如,其他),但没有运气。
有没有人能够让这种流程发挥作用?任何帮助将不胜感激!
答案 0 :(得分:0)
我也碰到了这个。谷歌的例子是错误的,或者至少是不完整的。您必须在开发人员控制台上设置重定向uri并将其传递给oauth客户端,如下所示:
credentials = client.credentials_from_clientsecrets_and_code(
CLIENT_SECRET_FILE,
['https://www.googleapis.com/auth/drive.appdata', 'profile', 'email'],
auth_code, None, "your redirect uri")
此处的完整文档http://oauth2client.readthedocs.io/en/latest/source/oauth2client.client.html