我一直试图让谷歌OAuth在Android上工作,我不断遇到障碍。
现在,在我的清单中,我已经为我的重定向网址添加了自定义网址方案和主机,如下所示:
当我尝试在Google OAuth意图中使用该网址方案时,出现以下错误:
经过一些谷歌搜索后,我在stackoverflow上找到this回答,告诉我将我的网址方案重新格式化为com.myapp.myscheme:/oauth
,因此我将redirect_uri设置为com.loop.loop:/oauth
,因为com.loop
是我的包名,loop
是我的方案,oauth
是我的主人。
尝试之后,我收到了这个错误:
此错误告诉我,我需要在某处注册我的重定向URI,因此我转到我注册了client_id的Google API控制台。但是,实际上没有地方可以注册我的重定向URI:
出于某种原因,使用com.loop:/oauth
有效,但授权后它不会重定向回我的应用。相反,它只是转到Google主页。
以下是我用来运行Chrome自定义标签的代码:
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent chromeIntent = builder.build();
chromeIntent.launchUrl(this, Uri.parse(url));
这是我正在使用的OAuth网址:
https://accounts.google.com/o/oauth2/auth
我不知道我应该在这做什么,而且文档不是很有帮助。我也知道有一个Android Google Auth库,但我对此并不感兴趣,因为这是Google特有的,我只是想制作一个通用的OAuth控制器。我也尝试过使用WebView,但Google不允许通过WebView使用OAuth。请帮忙
答案 0 :(得分:0)
我能够从this找出来。
显然对于谷歌oauth,意图过滤器必须如下所示:
<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="[YourPackageName]" />
</intent-filter>
将[YourPackageName]
替换为您的Android应用包名称,并使用[YourPackageName]:/oauth
作为重定向网址(oauth部分可以命名为任何内容)
所以呃...感谢谷歌记录无处