Android Google 使用 CustomTabsIntent 推动 OAuth
Android Google Drive OAuth with CustomTabsIntent
我一直在努力让 google OAuth 在 android 上工作,但我不断遇到障碍。
现在,在我的清单中,我为重定向 URL 添加了自定义 url 方案和主机,如下所示:
当我尝试在 Google OAuth 意图中使用 URL 方案时,出现以下错误:
谷歌搜索后,我在 Whosebug 上找到 答案,告诉我将 URL 方案重新格式化为 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 URL 我正在使用:
https://accounts.google.com/o/oauth2/auth
我不知道我应该在这里做什么,文档也不是很有用。我也知道有一个 Android Google Auth 库,但我对此不感兴趣,因为它是 Google 特有的,我只是想做一个通用的OAuth 控制器。我也尝试过使用 WebView,但是 Google 不允许通过 WebView 进行 OAuth。请帮忙
好吧,我可以从 this 中找出答案。
显然对于 google 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
作为您的重定向 URL(oauth 部分可以任意命名)
所以呃...感谢 google 无处记录
我一直在努力让 google OAuth 在 android 上工作,但我不断遇到障碍。
现在,在我的清单中,我为重定向 URL 添加了自定义 url 方案和主机,如下所示:
当我尝试在 Google OAuth 意图中使用 URL 方案时,出现以下错误:
谷歌搜索后,我在 Whosebug 上找到 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 URL 我正在使用:
https://accounts.google.com/o/oauth2/auth
我不知道我应该在这里做什么,文档也不是很有用。我也知道有一个 Android Google Auth 库,但我对此不感兴趣,因为它是 Google 特有的,我只是想做一个通用的OAuth 控制器。我也尝试过使用 WebView,但是 Google 不允许通过 WebView 进行 OAuth。请帮忙
好吧,我可以从 this 中找出答案。
显然对于 google 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
作为您的重定向 URL(oauth 部分可以任意命名)
所以呃...感谢 google 无处记录