質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

1738閲覧

Google Gmail API でメール一覧が取得できない

nitavellir

総合スコア1

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/10/06 06:05

前提・実現したいこと

Googleのgmail apiを使用し、Gメールのメッセージ一覧を取得するコードがかきたいのですが、うまく取得できない状況です。
コードはGo言語で実装しています。

「該当のソースコード」をgo run で実行した結果、api自体はエラーなく動作するのですが、「発生している問題・エラーメッセージ」のように、空のmessageだけが100件出力されてしまいます。

プログラムがエラー終了していないのでgmail apiのトークン等の情報は正しいように思えるのですが、メールがうまく取得できていない原因として他に考えられることはありますでしょうか?

発生している問題・エラーメッセージ

MESSAGE: &{0 174fc74a3acd15e2 0 [] <nil> 0 174fc3726403ce87 {0 map[]} [] []} . . . MESSAGE: &{0 174bf5a4af7a2b36 0 [] <nil> 0 174bf5a4af7a2b36 {0 map[]} [] []} MESSAGE: &{0 174bdc80440f0bbd 0 [] <nil> 0 174bdc80440f0bbd {0 map[]} [] []} MESSAGE: &{0 174ba840cee53f05 0 [] <nil> 0 174ba840cee53f05 {0 map[]} [] []} MESSAGE: &{0 174ba7cc73441fc9 0 [] <nil> 0 174ba7cc73441fc9 {0 map[]} [] []} MESSAGE: &{0 174ba35ab6d70a8a 0 [] <nil> 0 174ba35ab6d70a8a {0 map[]} [] []} MESSAGE: &{0 174ba16552eb6ba7 0 [] <nil> 0 174ba16552eb6ba7 {0 map[]} [] []}

該当のソースコード

Go言語

1package main 2 3import ( 4 "encoding/json" 5 "fmt" 6 "io/ioutil" 7 "log" 8 "os" 9 "path/filepath" 10 11 "golang.org/x/net/context" 12 "golang.org/x/oauth2" 13 "golang.org/x/oauth2/google" 14 "google.golang.org/api/gmail/v1" 15) 16 17func main() { 18 ctx := context.Background() 19 20 c_file, err := ioutil.ReadFile("credentials.json") 21 if err != nil { 22 log.Fatalf("Unable to read client secret file: %v", err) 23 } 24 25 config, err := google.ConfigFromJSON(c_file, gmail.MailGoogleComScope) 26 if err != nil { 27 log.Fatalf("Unable to parse client secret file to config: %v", err) 28 } 29 fmt.Println("CONFIG:") 30 fmt.Println(config) 31 32 dir, _ := os.Getwd() 33 t_file, err := os.Open(filepath.Join(dir, "token.json")) 34 if err != nil { 35 log.Fatal(err) 36 } 37 t := &oauth2.Token{} 38 err = json.NewDecoder(t_file).Decode(t) 39 defer t_file.Close() 40 41 client := config.Client(ctx, t) 42 43 srv, err := gmail.New(client) 44 if err != nil { 45 log.Fatalf("Unable to retrieve gmail Client %v", err) 46 } 47 48 res, err := srv.Users.Messages.List("me").Do() 49 if err != nil { 50 log.Fatalf("Unable to get labels. %v", err) 51 } 52 53 fmt.Println(srv.BasePath) 54 55 for _, msg := range res.Messages { 56 fmt.Println("MESSAGE:", msg) 57 } 58}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

GOだと判らない部分がありますが
単純にJSONをたどれていないような気がします。
Method: users.messages.list
REST Resource: users.messages
REST Resource: users.messages
多分質問者様がほしい情報はもっと深い場所にあります。

投稿2020/10/08 04:30

kuma_kuma_

総合スコア2506

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問