【发布时间】:2019-03-28 12:59:21
【问题描述】:
我正在尝试获取登录用户的电子邮件地址和姓名。我可以看到用户的姓名,但电子邮件地址显示为空。这是我为检索这两个值而编写的代码:
using Google.Apis.Auth.OAuth2;
using Google.Apis.People.v1;
using System.Net;
using System.Threading;
using Google.Apis.Services;
using Google.Apis.People.v1.Data;
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "jfms2vr52dm9eghchabasa5.apps.googleusercontent.com",
ClientSecret = "xxxxxxxxxxxx"
},
new[] { "profile", "https://www.googleapis.com/auth/contacts.readonly", "https://www.googleapis.com/auth/user.birthday.read", "https://www.googleapis.com/auth/userinfo.email" },
"me",
CancellationToken.None).Result;
// Create the service.
var service = new PeopleService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "M_Test1",
});
PeopleResource.GetRequest peopleRequest = service.People.Get("people/me");
peopleRequest.RequestMaskIncludeField = "person.names,person.emailAddresses,person.birthdays";
Person profile = peopleRequest.Execute();
【问题讨论】:
-
您是否在对用户进行身份验证后更改了范围?如果是这样将“我”更改为其他内容,它将强制用户再次登录。
-
我很害怕,但我不明白当你说“把“我”换成别的东西时,我应该写什么来代替我?
-
"me", filedatastore-demystified
标签: c# google-api google-api-dotnet-client google-people-api