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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ChatWork

業務の効率化を目的としたコミュニケーションツール。 グループチャット、ビデオ・音声通話、ファイル共有、タスク管理などの機能を備えています。マルチデバイス対応で、ブラウザだけでなくタブレットやスマートフォンでも利用可能です。

Q&A

0回答

1999閲覧

C#でChatworkに画像ファイルを送信したいです

maymodel

総合スコア12

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ChatWork

業務の効率化を目的としたコミュニケーションツール。 グループチャット、ビデオ・音声通話、ファイル共有、タスク管理などの機能を備えています。マルチデバイス対応で、ブラウザだけでなくタブレットやスマートフォンでも利用可能です。

0グッド

1クリップ

投稿2019/05/29 08:52

編集2019/05/29 09:02

前提・実現したいこと

こんにちは。
Visual Studio 2019 CommunityをWindows10で使って開発しています。
C#でChatworkに画像ファイルを送信したいです。

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

StatusCode 200でOKですが、画像をChatworkに登録できません。

{StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: { Connection: keep-alive x-amzn-RequestId: *****-****-****-******** x-amz-apigw-id: ***** X-Amzn-Trace-Id: Root=1-****-*****;Sampled=1 X-Cache: Miss from cloudfront X-Amz-Cf-Id: ******== Date: Wed, 29 May 2019 08:02:39 GMT Via: 1.1 *****.cloudfront.net (CloudFront) Content-Length: 22 Content-Type: application/json }}

試したこと

たくさんのことを試しました。

(1)TeratailのChatworkに投稿するを参考に投稿。添付はなし。成功。
https://teratail.com/questions/60965

(2)TeratailのChatworkにExcelファイルを投稿するを参考に投稿。失敗。投稿を表示できない。
https://teratail.com/questions/178860

(3)Webで見てChatworkにTextファイルを投稿するを参考に投稿。成功。
https://qiita.com/tsuttie/items/4a015f0a9ea6daf1ab8c

(4)HttpClientを使ってコーディング。失敗。投稿を表示できない。<-いまここ。

該当のソースコード

C#

1 public void SendFileByHttpClient2Chatwork(string roomId, string apiKey, string filePath) 2 { 3 // 表示する添付ファイル名 4 string filename = Path.GetFileName(filePath); 5 6 // 拡張子に対応したコンテンツタイプ 7 string contenttype = "image/jpeg"; 8 9 var url = string.Format("https://api.chatwork.com/v2/rooms/{0}/files", roomId); 10 11 using (var httpClient = new HttpClient()) 12 using (var multipart = new MultipartFormDataContent()) 13 { 14 // トークン設定 15 httpClient.DefaultRequestHeaders.Add("X-ChatWorkToken", apiKey); 16 httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(contenttype)); 17 18 var fileinfo = new FileInfo(filePath); 19 20 var fileContent = new StreamContent(File.OpenRead(fileinfo.FullName)); 21 fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") 22 { 23 Name = filename, 24 FileName = fileinfo.Name 25 }; 26 multipart.Add(fileContent); 27 28 var response = httpClient.PostAsync(url, multipart).Result; 29 } 30 }
SendFileByHttpClient2Chatwork(roomid, apikey, @"D:\b9eaf89be.jpg");

のように呼び出しています。

ご助言いただければ幸いです。

足りない情報があれば補足いたしますので、ご指摘ください。

補足情報(FW/ツールのバージョンなど)

Microsoft Visual Studio Community 2019
Version 16.1.1
VisualStudio.16.Release/16.1.1+28922.388
Microsoft .NET Framework
Version 4.7.03190

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

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

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

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

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

hihijiji

2019/05/29 09:15

Chatworkはわかりませんが、本文なしで投稿できるのですか?
maymodel

2019/05/29 09:26

テキストファイルの送信では本文なしで投稿できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問