Android 使用google+;时,我需要添加哪些范围来获取用户电子邮件;登录?
我正在尝试从google plus api获取访问令牌 我运行以下代码: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
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已被弃用,您需要使用电子邮件作用域。那么我应该为这个范围写些什么呢?