「Slackのチャンネルに投稿されたメッセージをGoogleスプレッドシートに書き込んでいきたい」と思った時に使える便利なAPI「Outgoing Webhook」がSlackにありました。
前回までで「Outgoing Webhook」の準備は完了しましたので、続きを作っていきます。
GASを新規作成する
Slackの「Outgoing Webhook」の準備ができたら、次はGAS側の準備をしていきます。
まずは、スプレッドシートのコンテナバインドとして、GASを作成します。コンテナバインドとは?という方はこちらをご参考ください。
スプレッドシートを新規作成します。
![](https://eguweb.jp/wp-content/uploads/スクリーンショット-2022-10-14-8.51.12-1024x458.jpg)
スプレッドシートにデータを書き込む
まずは、スプレッドシートにデータを書き込むための変数を準備します。
関数をdoPost(e)(WebアプリにPOSTリクエストが送られた時に実行される関数)で作成しておき、スプレッドシートのデータを取得・スプレッドシートにデータを書き込みできるようにします。
function doPost(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('データ取得');
}
「データ取得」シートにデータが送信されます。
![](https://eguweb.jp/wp-content/uploads/スクリーンショット-2022-10-14-12.28.42-1024x771.jpg)
最終行の次の行にデータを書き込む
最終行の次の行にデータを書き込まないと、上書きされてしまいますので、最終行に1を加えた変数を準備します。
function doPost(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('データ取得');
const lastrowNext = sheet.getLastRow()+1;
}
これで、最終行に1加えた行にデータを書き込みできるようになります。
Slackで投稿したメッセージをスプレッドシートに書き込めるようにする
Slackで投稿したメッセージを受け取れるように、パラメータを取得します。
.user_nameでユーザー名、.textでテキスト(メッセージ)を受け取れます。
function doPost(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('データ取得');
const lastrowNext = sheet.getLastRow()+1;
const username = e.parameter.user_name;
const text = e.parameter.text;
}
Slackで投稿したメッセージをスプレッドシートに書き込む
Slackで投稿したメッセージがスプレッドシートに書き込めるようにします。
function doPost(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('データ取得');
const lastrowNext = sheet.getLastRow()+1;
const username = e.parameter.user_name;
const text = e.parameter.text;
sheet.getRange( lastrowNext, 1).setValue(username);
sheet.getRange( lastrowNext, 2).setValue(text);
return;
}
1列目にユーザー名、2列目にメッセージが書き込まれます。最後に結果を受け取れるようにreturnします。
デプロイする
ここまでくれば準備完了です。あとはGASをデプロイします。
[rml_read_more]
この時、アクセスできるユーザーは全員である必要があるので、変更します。あとはデプロイします。
![](https://eguweb.jp/wp-content/uploads/スクリーンショット-2022-10-14-12.37.26-1024x529.jpg)
デプロイされました!あとは発行されたURLを、前回作成したアプリケーションに接続させます。
![](https://eguweb.jp/wp-content/uploads/スクリーンショット-2022-10-14-12.38.04.jpg)
![](https://eguweb.jp/wp-content/uploads/スクリーンショット-2022-10-14-12.40.57-1024x797.jpg)
Slackのメッセージがスプレッドシートに書き込まれる
何かしらデータが書き込まれるのか、テストしてみます。
![](https://eguweb.jp/wp-content/uploads/スクリーンショット-2022-10-14-12.42.45-1024x510.jpg)
スプレッドシートにデータが書き込まれました!
![](https://eguweb.jp/wp-content/uploads/スクリーンショット-2022-10-14-12.44.41-1024x375.jpg)
まとめ
これで、SlackからGoogleスプレッドシートにデータを書き込むことができました。送信するたびに末尾業の次の行にデータが書き込まれていき便利です。
Slackに「Outgoing Webhook」という便利な仕組みがありましたので、御参考ください😃