You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gmail API入门求助:C#开发首个可运行Gmail应用

C# 接入Gmail API 入门实操指南

Google API 通用入门路径

  • 先完成Google Cloud侧基础配置:新建独立Cloud项目,进入API与服务库搜索Gmail API手动启用,未启用状态下所有接口调用都会直接返回权限错误,没有例外
  • 生成对应凭据:本地测试Demo直接选「桌面应用」类型的OAuth2.0凭据即可,不需要做域名校验、发布审核等复杂操作,下载生成的JSON凭据文件重命名为credentials.json,放到C#项目根目录,设置文件属性为「如果较新则复制」到输出目录
  • 提前确认权限范围:入门阶段不要选全量权限,先用最小必要权限做测试,比如读邮件选GmailService.Scope.GmailReadonly即可,后续要加发信、改标签等功能再扩权限;注意修改权限范围后必须删掉本地存储的授权缓存文件,否则不会触发重新授权。

首个可运行Gmail应用实操步骤

  • 新建.NET 6+版本的控制台项目即可,入门阶段别一开始做Web、WPF这类带复杂交互的项目,先跑通最小逻辑再迁移。直接通过Nuget安装官方依赖包Google.Apis.Gmail.v1,不要用第三方封装的同类包,兼容性和维护性都没有保障。
  • 直接复用下面的核心逻辑,首次运行会自动唤起浏览器跳转到Google账号授权页,授权完成后会在本地自动存储刷新token,后续运行不需要重复走授权流程:
using Google.Apis.Auth.OAuth2;
using Google.Apis.Gmail.v1;
using Google.Apis.Services;
using Google.Apis.Util.Store;

// 凭据加载与授权
UserCredential credential;
using (var stream = new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
{
    credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.FromStream(stream).Secrets,
        new[] { GmailService.Scope.GmailReadonly },
        "demo_user",
        CancellationToken.None,
        new FileDataStore("GmailTokenCache") // 本地token自动存储路径
    );
}

// 初始化Gmail服务实例
var gmailService = new GmailService(new BaseClientService.Initializer()
{
    HttpClientInitializer = credential,
    ApplicationName = "FirstGmailDemo"
});

// 测试逻辑:拉取邮箱标签+最近3封邮件主题,能正常输出即代表跑通
var labelRes = await gmailService.Users.Labels.List("me").ExecuteAsync();
Console.WriteLine($"接口连通成功,当前邮箱共有{labelRes.Labels.Count}个标签");

var msgListReq = gmailService.Users.Messages.List("me");
msgListReq.MaxResults = 3;
var msgList = await msgListReq.ExecuteAsync();
foreach (var msgItem in msgList.Messages)
{
    var msgDetail = await gmailService.Users.Messages.Get("me", msgItem.Id).ExecuteAsync();
    var subject = msgDetail.Payload.Headers.FirstOrDefault(h => h.Name == "Subject")?.Value;
    Console.WriteLine($"拉取到邮件:{subject}");
}

新手高频踩坑提醒

  • 本地跑授权的时候如果开了网络代理,记得把localhost地址加入代理绕过列表,否则授权回调会被代理拦截,一直卡在授权加载页
  • 遇到权限拒绝类报错,第一时间回头检查对应Cloud项目下的Gmail API是否真的启用,超过半数新手卡在这里——建了项目但忘开API,找半小时问题
  • 凭据类型不要选错,选成Web应用、服务账号类型的话,本地控制台项目的授权流程会直接失败,入门阶段老老实实选桌面应用凭据
  • 首次授权如果看到「Google未验证此应用」的安全提示,直接点高级选项选择继续访问即可,这是因为自建项目未提交官方审核,个人开发测试使用没有安全问题

内容的提问来源于stack exchange,提问作者user18800522

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 20:12:16