Slack APIで画像ファイルをアップロードする
Botkitを使ってボットを作っていました。
ボットでチャンネルに常駐してBuild successというメッセージがきたら
- ダウンロードリンクを取得
- QRコードの画像ファイルを作成
- 作成した画像ファイルをSlackに投稿
だいたいこんなことをやりたいボットです。
QRコードを作るのは簡単で以下のモジュールを使ってすぐに実装できました。
GitHub - soldair/node-qrcode: node js server side qr code generator utilizing node-canvas
使い方はこんな感じ。
var QRCode = require('qrcode'); QRCode.save('./qr.png' , 'http://google.com', function(err){ if(err){ console.log(err); } });
さて作成した画像をslackに投稿したいのですが、ここでハマりました。。
少しググったら以下の記事を見つけたので同様に試してみたのですが、どうも画像ファイルがtext/plainとして認識されてしまい文字化けしたような意味不明のファイルが投稿されてしまいます。
それで以下のAPIドキュメントを参考にしつつnodeのrequestモジュールを使って色々試行錯誤の沼に。。
files.upload method | Slack
だいぶ色々試して時間かかったのですが、
結論、以下の方法でできました。
slack apiで画像ファイルをアップロードする
追記
このプルリクがマージされるとBotkitだけで普通にアップロードできるようになりそうな。
Added multi-part file upload to files.upload by olirogers · Pull Request #112 · howdyai/botkit · GitHub
- 作者: Brett McLaughlin
- 出版社/メーカー: O'Reilly Media
- 発売日: 2011/07/13
- メディア: Kindle版
- この商品を含むブログ (1件) を見る