なんかいろいろと書いてくブログ

関東のどこかで働く、一般人

Gmail APIを触ってみたりした

仕事の関連で、gmail API関連を触る必要がありそうなので、少し調べた。

APIを使うにはGoogle Cloud Platform(GCP)内でプロジェクとを作る必要があるみたい。
以下、Gmail APIの公式、言語ごとにチュートリアルもどきがあるので
セットアップにはそんなに困らなかった。

developers.google.com

C#側ではGoogle.Apis.Gmail.v1をNugetを介してインストールしてあげる さすがgoogle、ライブラリが手厚いぜ!

認証がOAuth認証なら以下で良いとのこと(認証情報として、"credentials.json"をダウンロードする必要あり)

using (var stream =
     new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
{
    string credPath = "token.json";
    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets,
        Scopes,
        "user",
        CancellationToken.None,
        new FileDataStore(credPath, true)).Result;
    }

var service = new GmailService(new BaseClientService.Initializer()
{
    HttpClientInitializer = credential,
    ApplicationName = ApplicationName,
});

あとは認証情報を保存した"service"とともにAPIへ情報を送る。 (ドキュメントだとTag一覧を取得するコードが書いてあった気がする)

細かい、仕様はもうちっと調査する必要があるかなーと思いつつ、
とりあえず、ここまで。

おそらく、Azure Functionと絡めて、 メールを受信したらAzure FunctionへHTTPリクエストを送るみたいな実装をする気がする。