2016-05-31 17 views
0

Gmailから受信トレイ全体(電子メール本文と添付ファイル)をダウンロードしたいと考えています。メッセージIDを使用してGmail.Messageオブジェクトを取得できますが、スニペット(約200文字)しか表示されません。APIを使用してGmailの受信トレイから完全なメッセージと添付ファイルを取得するにはどうすればよいですか?

C#の場合、Gmail APIを使用して受信トレイ全体をXML形式で取得する方法はありますか? https://developers.google.com/gmail/api/v1/reference/users/messages/list#parameters

HTTPリクエスト

https://www.googleapis.com/gmail/v1/users/userId/messages

を取得するには、GmailのAPIについては

+0

正確に行うAPI呼び出しは何ですか? HTTPリクエストをお願いしますか? – gretro

答えて

0

を参照してください、あなたの要望に正しい認証ヘッダを適用していることを確認してください。

0

the documentationによると、あなたは

GET https://www.googleapis.com/gmail/v1/users/userId/messages/id

を使用することができ、これは、使用しているコールですか?デフォルトフォーマットはFullです。

"full":ペイロードフィールドで解析された本文内容の完全な電子メールメッセージデータを返します。生フィールドは使用されません。あなたが Users.messages.attachmentsを試すことができ、添付ファイルを取得するための(デフォルト)

GET https://www.googleapis.com/gmail/v1/users/userId/messages/messageId/attachments/id

しかし、これのためにあなたは、添付ファイルのIDが必要になります。利用可能なデータを示すUser.messages overviewを確認したい場合は、Payloadの呼び出しを試すことができますか?

1

APIを見ると、/users/me/threads、次にusers/me/threads/<id>にリクエストする必要があります。body.dataの値はベース64でエンコードされています。私はC#のAPIを使用して、100%確実ではないが、私はあなたのような何かをすることを前提としています

var request = service.Users.Threads.List("me"); 

var labels = request.Execute().Threads; 
foreach(var thread in lables){ 
    var threadReqeust = service.Users.Threads.Get("me", thread.Id); 
    var data = threadReqeust.Execute(); 
    //you have your entire message now 
} 

(私はGmailのAPIでこれをチェックしていないとして、これは半pusudoコードは、にあることにご注意ください)

https://developers.google.com/gmail/api/v1/reference/users/threads/list) (https://developers.google.com/gmail/api/v1/reference/users/threads/get) "身体データが別添付ファイルに含まれている場合アタッチメントIDが存在しています。"

もう1つの方法は、常にIMAP(ImapXまたは同等のものを使用)でログインし、そのようにデータを収集することですが、APIを使用する方が良いでしょう。

+0

私はそれに従っていた。しかし、フィールド "ボディ"だけの "スニペット"はありません –

+0

リクエスト(https://developers.google.com/gmail/api/v1/reference/users/threads/get)でフォーマットプロパティを調べてみてください またスレッド項目内の(メッセージの)リスト(https://developers.google。com/gmail/api/v1/reference/users/threads#resource-representations) –

+0

フォーマットプロパティの設定方法は? Formatプロパティが見つかりました: var getReq = UsersResource.MessagesResource.GetRequest.FormatEnum.Full; しかし、Getメソッドの使い方は?私はサービスを利用しなければならない。右? service.Users.Messages.Get( "me"、item.Id).Execute() - しかし、メソッドは、Formatのような3番目のパラメータでオーバーロードを持っていません。 –

関連する問題