使用 C# 客户端 API 从 GmailService 获取电子邮件地址

Posted

技术标签:

【中文标题】使用 C# 客户端 API 从 GmailService 获取电子邮件地址【英文标题】:Obtain email address from GmailService using C# client API 【发布时间】:2020-09-16 05:11:12 【问题描述】:

Gmail API to get profile info

基于此链接,可以从经过身份验证的个人资料中获取电子邮件地址。 不幸的是,我无法找到如何在 C# API 客户端中获取它。

我试过这个:GmailService.Users.GetProfile("me"),但这不包含电子邮件地址。

我希望有人知道如何使用 C# API 客户端执行此操作。

谢谢。

【问题讨论】:

【参考方案1】:

您可以使用简单的 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 测试过这段代码,但这应该会让你朝着正确的方向前进。

【讨论】:

Gmail API 有一个用于 C#(NuGet 包)的 api 客户端。我希望它已经包含了我可以调用来检索此信息的必要方法。【参考方案2】:

这对我有用

// 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;

【讨论】:

以上是关于使用 C# 客户端 API 从 GmailService 获取电子邮件地址的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中使用 ExtraParams 从 Stripe 的 API 中提取特定事件

adwords api 客户端库 c# with crm sdk

C#中HttpClient使用注意:预热与长连接

C# API - 提供从 Azure Blob 存储下载的文件

如何使用 MongoDB 将动态 JSON 属性发布到 C# ASP.Net Core Web API?

无法根据访问令牌对用户进行身份验证 - MS Graph API C#