android – 新发布的“使用Google Play服务进行身份验证”,通过GoogleAuthUtil.getToken获取令牌的问题

更新:

刚刚通过我也用于Google App Engine的Google帐户注册Google Api,现在错误已更改为com.google.android.gms.auth.GoogleAuthException:未知

谷歌刚刚发布了一个新的方式到sign up to one’s app via a Google Account,并在他们的blogpost也给了一些解释.

我正在编写一个Android应用程序,您必须注册才能创建一个用户帐户,并且我在后端使用Google App Engine.通过播放服务,我想让用户的电子邮件附属于他们的Android设备和令牌.我可以收到电子邮件,但是,获取令牌只会引发错误,由于文档相当稀疏,我不知道如何解决这些错误.这就是我收到的电子邮件

private String[] getAccountNames() {
    mAccountManager = AccountManager.get(this);
    Account[] accounts = mAccountManager.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
    names = new String[accounts.length];
    for (int i = 0; i < names.length; i++) {
        names[i] = accounts[i].name;
    }

    return names;
}

但是,当我打电话给token = GoogleAuthUtil.getToken(上下文,电子邮件,
“范围”,它给我这些错误
由于错误1和com.google.android.gms.auth.GooglePlayServicesAvailabilityException:GooglePlayServicesNotAvailable,GooglePlayServices不可用.

现在我的问题是,我必须设置任何权限或包含任何库来解决这个问题吗?什么是范围参数?在他们的博客文章中给出了如何获取令牌和放置在范围内的示例,将范围变量设置为“https://www.googleapis.com/auth/userinfo.profile”,但是我仍然收到相同的错误不幸.

我还注册了我的Google Api控制台应用程序并启用了G API,是否还必须配置其他的东西?

解决方法

使用Google云端硬盘的Google客户端库时,我遇到了同样的问题.
解决方案很简单.只需将“oauth2:”添加到您的scopeUrl.

错误

GoogleAuthUtil.getToken(this,account.name,DriveScopes.DRIVE);

对:

GoogleAuthUtil.getToken(this,"oauth2:" + DriveScopes.DRIVE);

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...