这是参考:
https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html
要求在#google-oauth下发布有关堆栈溢出的问题。
来自Android电子邮件应用程序开发人员的两个问题,尝试实现上面链接中所述的“现代化”OAUTH流程。
1 - 我在Google Developer Console中注册了我的回调URI,如下所示:org.kman.AquaMail:/oauth2redirect
2 - 我的代码基于https://accounts.google.com/o/oauth2/auth
构建了一个批准URI,与WebView基本相同,但redirect_uri
参数是上面的自定义方案URI。
3 - 我可以在Chrome自定义标签
中显示此批准URI 4 - 将此添加到我的清单中,将其复制出AppAuth-Android
示例:
<!-- OAUTH result activity for Gmail --> <activity android:name=".mail.oauth.OAuthGmailResultActivity"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="org.kman.AquaMail"/>
(唉,降价解析器吃了intent-filter和activity的结束标记,但它们就在那里)
到目前为止一切顺利(差不多)。
现在这变坏了:
当我实际登录时,在Chrome自定义标签中,通过在屏幕上按“允许”授予权限,该屏幕显示“应用程序想要” -
我的“结果活动”是具有我的自定义方案的intent过滤器的那个,不会被调用。
相反,Chrome标签只是重定向到google.com(在我的情况下是.ru)。
logcat中没有任何有趣的内容(例如尝试运行此活动失败)。
我该如何调试?
PS - 我知道自定义方案的approval_url就在那里,如果我点击“三个点”然后点击“信息”图标,我可以在Chrome标签中看到它。
答案 0 :(得分:0)
咄。如果其他人碰到这个。
当approval_url回到我的应用程序时,它已被转换为小写。
因此org.kman.AquaMail:/oauth2redirect
变为org.kman.aquamail:/oauth2redirect
。
因此&#34;结果活动&#34;的意图过滤器需要将该方案设为小写。