我的应用中相当重要的一部分是用户使用Google帐户登录的能力。对于Play商店中的应用版本,我已使用AccountManager
和Google Play服务。我现在遇到的问题是如何使用常规oauth来安装没有安装GPS的设备(如Kindles)。
我的一般想法是使用回调网址(在AndroidManifest中处理)弹出用户的默认网络浏览器,这样我就可以从那里获取oauth令牌:
public void requestTokenFallback(){
Uri.Builder builder = new Uri.Builder().scheme("https")
.authority("accounts.google.com")
.appendPath("o")
.appendPath("oauth2")
.appendPath("auth")
.appendQueryParameter("response_type", "token")
.appendQueryParameter("client_id", CLIENTID)
.appendQueryParameter("scope", SCOPE)
.appendQueryParameter("redirect_uri", "myapp-oauth");
Intent browserIntent = new Intent(Intent.ACTION_VIEW, builder.build());
activity.startActivity(browserIntent);
}
如果我将response_type
设置为"code"
,则允许我登录并向我提供复制和粘贴的令牌。如果我将其设置为"token"
并使用redirect_uri
urn:ietf:wg:oauth:2.0:oob
(因为这就是Google API控制台中的内容),我会收到一条消息“redirect_uri不支持response_type = token:urn:ietf :WG:OAuth的:2.0:OOB“
我遇到的问题是,我无法弄清楚如何在Google API控制台端配置此功能,以便我可以将myapp-oauth://access_token:XXXXXXXXX
设置为OAuth流重定向到的地址
有什么想法吗?
答案 0 :(得分:3)
查看我的帖子了解详情。 https://plus.google.com/+NaveenAgarwal/posts/AztHNnQh7w6
客户端可以使用以下任一自定义方案: com.example.myapp:/ oauth2Callback com.googleusercontent.apps.1234-ABC:/ oauth2callback