18
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GoogleAppsScript(GAS)からSlackに画像を投稿する

Posted at

はじめに

GoogleAppsScriptからSlackに画像を投稿する方法を調べたところ、良さそうなサンプルなどを見つけることができなかったので、いろいろ調べて作りました。
やりたかったことは、画像のURLを指定し、その画像をSlackに画像ファイルとして投稿することです。
URLを送るだけでは画像は表示されなかったので、ファイルとして投稿する必要があるようです。

コード

postImage.gs
var SLACK_TOKEN='hogehoge';

var image=UrlFetchApp.fetch('http://example.com/image.png').getBlob();
var data={
  token:SLACK_TOKEN,
  file:image,
  channels:'random',
  title:'image'
};
var option={
  'method':'POST',
  'payload':data
};
  
UrlFetchApp.fetch('https://slack.com/api/files.upload',option);

SLACK_TOKEN、画像のURLは適宜置き換えてください。

解説

var image=UrlFetchApp.fetch('http://example.com/image.png').getBlob();

この部分で、URLの画像を取得し、Blobオブジェクトを生成しています。
その下の行では、各プロパティーを設定しています。
ほかに設定可能なプロパティーは以下のページに記載してあります。
files.upload method | Slack
そして、以下の行でSlackに画像を投稿しています。

UrlFetchApp.fetch('https://slack.com/api/files.upload',option);

まとめ

Node.jsで動くサンプルなどはあったのですが、GASでURLを指定して画像を投稿するサンプルは見つけられませんでした。(調査不足だったらごめんなさい)
用途としてはサーバー監視サービスMackerelのグラフを定期的に投稿するbotなどが考えられます。
GASは他サービスやAPIとの連携が簡単にできて本当に便利ですね!!

18
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?