前提・実現したいこと
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}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。