【发布时间】:2020-09-16 05:11:12
【问题描述】:
基于此链接,可以从经过身份验证的个人资料中获取电子邮件地址。 不幸的是,我无法找到如何在 C# API 客户端中获取它。
我试过这个:GmailService.Users.GetProfile("me"),但这不包含电子邮件地址。
我希望有人知道如何使用 C# API 客户端执行此操作。
谢谢。
【问题讨论】:
标签: c# .net gmail-api nuget-package
基于此链接,可以从经过身份验证的个人资料中获取电子邮件地址。 不幸的是,我无法找到如何在 C# API 客户端中获取它。
我试过这个:GmailService.Users.GetProfile("me"),但这不包含电子邮件地址。
我希望有人知道如何使用 C# API 客户端执行此操作。
谢谢。
【问题讨论】:
标签: c# .net gmail-api nuget-package
您可以使用简单的 WebRequest 并解析 JSON 以获取 emailAddress 字段。
您可以构建一个类似于以下内容的响应模型:
public class APIResponse
{
public string emailAddress {get; set;}
public int messagesTotal {get; set;}
public int threadsTotal {get; set;}
public int id {get; set;}
}
然后您将要向 GoogleAPI url 发出 GET 请求并反序列化来自您的 API Response 类的 JSON 响应。
WebRequest request = WebRequest.Create("https://www.googleapis.com/gmail/v1/users/me/profile");
request.Method = "GET";
request.ContentType = "application/x-www-form-urlencoded; charset=utf-8";
request.Timeout = 50000;
//Get response from server
using (StreamReader stream = new StreamReader(request.GetResponse().GetResponseStream(), Encoding.UTF8))
{
sResponse = stream.ReadToEnd();
resp = new JavaScriptSerializer().Deserialize<APIResponse>(sResponse);
}
那么您只需拨打电话resp.emailAddress.即可取回您的电子邮件地址
我还没有为 GoogleAPI 测试过这段代码,但这应该会让你朝着正确的方向前进。
【讨论】:
这对我有用
// Create Gmail API service.
GmailService service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
var gmailProfile = service.Users.GetProfile("me").Execute();
var userGmailEmail = gmailProfile.EmailAddress;
【讨论】: