LoginSignup
3
3

More than 5 years have passed since last update.

Googleフォームで送られてきた画像をSlackで表示する方法

Last updated at Posted at 2019-05-05

Googleフォームで画像を送ることって結構あると思います。
それで、Googleフォームが送られた際にSlackに飛ばすのですが、そのままの設定だと画像のファイルIDしか表示されなかったので、なんとか出来ないかと試しました。

Googleフォーム→Slack

Googleformからのslack通知設定方法

こちらの記事を参考に作成。ただ、トリガーの部分だけが今と若干違うので注意が必要。
image.png
この画面に飛んだら、トリガーを追加を押す。
image.png
実行したいタイミングを設定して保存すれば、トリガーの設定はOK

余談ですが、Googleフォームからスクリプトエディタに飛ぶ際に、複数アカウントでログインしていると結構な割合で編集することが出来ないのですが、GoogleChromeのシークレットモードにして作業すれば何も問題無いので、オススメです。

Googleドライブの権限設定

アップロードした画像はGoogleドライブにアップロードされます。
フォルダは任意の場所に移動することは可能ですが、デフォルトではルートディレクトリに作成されます。
【フォームのディレクトリ】→【質問のディレクトリ】という構造になっています。

ディレクトリを選択し右クリックして、共有リンクの発行をしておきます。これによって、後から追加された画像についても共有リンクの許可がおりるようになります。

スクリプトエディタの設定

コード.gs
      case "キャラクターデザインイラスト":
        img = response;
        break;

imgが受け取ったファイルIDになります。
共有されたリンクが発行された画像は、下記のURLで見ることが可能になります。

http://drive.google.com/uc?export=view&is=[ファイルID]

なので、Slackに飛ばす際にURL+ファイルIDにすればSlack側で表示されるようになります。

"\nキャラクターデザインイラスト:http://drive.google.com/uc?export=view&id=" + img

これでSlackでGoogleフォームから送られてきた画像を確認することが出来るようになりました。
ただ、これだと画像が複数枚来た時の対応が出来ません。

複数枚来た時の対応方法

コード.gs
  var img_array = img.split(',');
  var count = img_array.length;
  var img_url = "";
  for(var i=0;i<count;i++)
  {
    img_url+="http://drive.google.com/uc?export=view&id=" + img_array[i] + "\n";

  }

画像が複数枚設定された時は[画像ID,画像ID]と、カンマ区切りで値がやってきます。なので、一度split関数を使い、配列にします。
その後に全て読み込み、URLと改行コードを入れてStringに追加していき、img_urlをSlackに飛ばしてあげれば確認することが出来ます。

以上です。GoogleフォームとSlackで便利な生活を!

参考記事

Google Drive に保存した画像を直接呼び出せるURLの取得

3
3
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
3
3