此处列出了Google+授权范围列表:https://developers.google.com/+/api/oauth。细...
在Android客户端的QuickStart示例中,获取GoogleApiClient实例的代码如下所示,但带有“Plus.SCOPE_PLUS_LOGIN”范围。但我希望改为使用“电子邮件”范围。我无法找到“电子邮件”范围的常量。
private GoogleApiClient buildGoogleApiClient() {
// When we build the GoogleApiClient we specify where connected and
// connection failed callbacks should be returned, which Google APIs our
// app uses and which OAuth 2.0 scopes our app requests.
return new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API, Plus.PlusOptions.builder().build())
.addScope(Plus.SCOPE_PLUS_LOGIN) // I WANT AN email SCOPE!!!
.build();
}
我是否必须自己创建 Scope 实例?例如:
Scope emailScope = new Scope("email"); // like this?????
答案 0 :(得分:4)
您可以使用Plus.AccountApi.getAccountName()检索已登录用户的电子邮件地址:
// Note mGoogleApiClient must be connected for this to work
String email = Plus.AccountApi.getAccountName(mGoogleApiClient);
根据开发者文档的说明:
获取Google Play服务解析的帐户名称。必须在
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
中声明权限AndroidManifest.xml
才能使用此方法。
答案 1 :(得分:0)
您可以为其创建新范围。这对我有用:
Builder builder = new GoogleApiClient.Builder(this)
.addApi(Plus.API)
.addScope(Plus.SCOPE_PLUS_PROFILE)
.addScope(new Scope("https://www.googleapis.com/auth/userinfo.email"))