会員登録(無料)
ログイン
スキルアップは今すぐこちら!▶

【GAS】SlackのOutgoing Webhook APIを使ってGoogleスプレッドシートに投稿内容を書き込む|Part2

GAS(GoogleAppsScript)
この記事は約4分で読めます。

「Slackのチャンネルに投稿されたメッセージをGoogleスプレッドシートに書き込んでいきたい」と思った時に使える便利なAPI「Outgoing Webhook」がSlackにありました。

前回までで「Outgoing Webhook」の準備は完了しましたので、続きを作っていきます。

GASを新規作成する

Slackの「Outgoing Webhook」の準備ができたら、次はGAS側の準備をしていきます。

まずは、スプレッドシートのコンテナバインドとして、GASを作成します。コンテナバインドとは?という方はこちらをご参考ください。

スプレッドシートを新規作成します。

スプレッドシートにデータを書き込む

まずは、スプレッドシートにデータを書き込むための変数を準備します。

関数をdoPost(e)(WebアプリにPOSTリクエストが送られた時に実行される関数)で作成しておき、スプレッドシートのデータを取得・スプレッドシートにデータを書き込みできるようにします。

function doPost(e) {
 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('データ取得');
}

「データ取得」シートにデータが送信されます。

最終行の次の行にデータを書き込む

最終行の次の行にデータを書き込まないと、上書きされてしまいますので、最終行に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をデプロイします。

この時、アクセスできるユーザーは全員である必要があるので、変更します。あとはデプロイします。

デプロイされました!あとは発行されたURLを、前回作成したアプリケーションに接続させます。

Slackのメッセージがスプレッドシートに書き込まれる

何かしらデータが書き込まれるのか、テストしてみます。

スプレッドシートにデータが書き込まれました!

まとめ

これで、SlackからGoogleスプレッドシートにデータを書き込むことができました。送信するたびに末尾業の次の行にデータが書き込まれていき便利です。

Slackに「Outgoing Webhook」という便利な仕組みがありましたので、御参考ください😃

タイトルとURLをコピーしました