Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用google+;时,我需要添加哪些范围来获取用户电子邮件;登录?_Android_Google Plus_Google Login - Fatal编程技术网

Android 使用google+;时,我需要添加哪些范围来获取用户电子邮件;登录?

Android 使用google+;时,我需要添加哪些范围来获取用户电子邮件;登录?,android,google-plus,google-login,Android,Google Plus,Google Login,我正在尝试从google plus api获取访问令牌 我运行以下代码: private class RetrieveTokenTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { String accountName = params[0]; Log.e("account

我正在尝试从google plus api获取访问令牌

我运行以下代码:

private class RetrieveTokenTask extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {
        String accountName = params[0];
        Log.e("accountName", accountName);
        String scopes = "oauth2:" + Scopes.PLUS_ME; //

        String token = null;
        try {
            token = GoogleAuthUtil.getToken(getApplicationContext(), accountName, scopes);
        } catch (IOException e) {
            Log.e("GOOGLE+", e.getMessage());
        } catch (UserRecoverableAuthException e) {
            startActivityForResult(e.getIntent(), RC_SIGN_IN);
        } catch (GoogleAuthException e) {
            Log.e("GOOGLE+", e.getMessage());
        }
        return token;
    }

    @Override
    protected void onPostExecute(String s) {
        Log.d("TOKEN", "token: " + s);
    }
}
{
id: "111111111111"
name: "my name"
given_name: "my"
family_name: "name"
link: https://plus.google.com/123456789
picture: https:....jpg
gender: "male"
}
如何获取用户的电子邮件?我需要使用什么范围?

电子邮件的范围是

https://www.googleapis.com/auth/userinfo.email
需要
com.google.android.gms.common.Scopes.PLUS\u登录


因此,您可以将范围替换为

private static final String SCOPE = "oauth2:"
        + TextUtils.join(" ", new String[] { Scopes.PLUS_LOGIN,
                "https://www.googleapis.com/auth/userinfo.email",
                Scopes.PLUS_ME });

你可以用

https://www.googleapis.com/auth/userinfo.profile
用于读取用户信息(即姓名、名/姓、个人资料图像、性别等)的范围是

https://www.googleapis.com/auth/userinfo.email
需要
com.google.android.gms.common.Scopes.PLUS\u登录


因此,您可以将范围替换为

private static final String SCOPE = "oauth2:"
        + TextUtils.join(" ", new String[] { Scopes.PLUS_LOGIN,
                "https://www.googleapis.com/auth/userinfo.email",
                Scopes.PLUS_ME });

你可以用

https://www.googleapis.com/auth/userinfo.profile
用于读取用户信息(即姓名、姓氏、个人资料图像、性别等)的范围是:

https://www.googleapis.com/auth/plus.me
scope不建议作为登录范围,因为对于未升级到Google+的用户,它不会返回用户名或电子邮件地址

相反,建议您使用
配置文件
范围或
https://www.googleapis.com/auth/plus.login
scope(可作为
Scopes.PLUS\u登录名使用)

此外您需要
电子邮件
作用域(这是作用域的全名,不是URL格式),因此电子邮件地址将作为呼叫的一部分返回

您的作用域定义可能类似于:

String scopes = "oauth2:email " + Scopes.PLUS_LOGIN;

端点已被弃用,偶尔工作,并计划在9月份删除

相反,您应该使用(“me”表示经过身份验证的用户的userid)并使用与之前相同的承载令牌提供授权头

有关弃用和迁移的详细信息,请参见以下网址:

https://www.googleapis.com/auth/plus.me
scope不建议作为登录范围,因为对于未升级到Google+的用户,它不会返回用户名或电子邮件地址

相反,建议您使用
配置文件
范围或
https://www.googleapis.com/auth/plus.login
scope(可作为
Scopes.PLUS\u登录名使用)

此外您需要
电子邮件
作用域(这是作用域的全名,不是URL格式),因此电子邮件地址将作为呼叫的一部分返回

您的作用域定义可能类似于:

String scopes = "oauth2:email " + Scopes.PLUS_LOGIN;

端点已被弃用,偶尔工作,并计划在9月份删除

相反,您应该使用(“me”表示经过身份验证的用户的userid)并使用与之前相同的承载令牌提供授权头


有关弃用和迁移的详细信息,请参阅电子邮件中的
accountName
?那么你已经有了。电子邮件,帐户名,不是吗?伊兰更新了答案:“那么你已经有了。我怎么把它们都加上呢?”。Plz CHECK当我使用您的答案时,我得到一个令牌,但当我调用HTTP get进行检查时,我得到:{-错误:{-错误:[-{域:“全局”原因:“authError”消息:“无效凭据”位置类型:“头”位置:“授权”}代码:401消息:“无效凭据”}我需要一个不同的HTTP请求来获取信息吗?我得到了UserRecoverableAuthException,这使得google plus登录页面无限循环。我如何添加这两个页面?@ilan更新了答案。Plz CHECK当我使用您的答案时,我得到一个令牌,但当我调用HTTP get进行检查时,我得到:{-错误:{-错误:[-{域:“全局”原因:“authError”消息:“无效凭据”位置类型:“头”位置:“授权”}代码:401消息:“无效凭据”}我需要一个不同的HTTP请求来获取信息吗?我得到了UserRecoverableAuthException,这使得google plus登录页面无限循环。谢谢,我如何添加电子邮件范围?上面说userinfo.email已被弃用,您需要使用电子邮件作用域。那么我该为这个范围写些什么呢?谢谢,我该如何添加电子邮件范围呢?上面说userinfo.email已被弃用,您需要使用电子邮件作用域。那么我应该为这个范围写些什么呢?