① GoogleAppsScriptの準備
今回は、todayと打つと日付+曜日を返してくれるコマンドを作成してみます。
return_post.js
function doPost(e) {
var date = new Date();
var dayOfWeek = date.getDay();
var dayOfWeekStr = ["日", "月", "火", "水", "木", "金", "土"][dayOfWeek];
var today = Utilities.formatDate(date, 'Asia/Tokyo', 'YY/MM/dd【'+ dayOfWeekStr +'】');
var res = {response_type: "in_channel", text: today};
// 公式ページのリファレンスだと以下のようになっている。
// attachmentsをつける場合は以下のようにする。
// var res = {
// "response_type": "in_channel",
// "text": "Hello,World!",
// "attachments": [{"text":"Attachments1"}]
// }
return ContentService.createTextOutput(JSON.stringify(res)).setMimeType(ContentService.MimeType.JSON);
}
② GoogleAppsScriptの公開
「公開」→「ウェブアプリケーションとして導入…」
設定を以下のようにして公開する
・ プロジェクトバージョンは毎回最新とする
・「次のユーザーとしてアプリケーションを実行:」は自分を選択する
・「アプリケーションにアクセスできるユーザー:」は全員(匿名ユーザーを含む)を選択する
公開すると、URLが表示されるので、それをメモしておく。
② Slackの準備
②-1. SlackのAPIページ(https://api.slack.com/)へアクセスし、「Start Building」を選択
②-2. アプリの名前とアプリ導入先のワークスペースを指定
(アプリの名前≠コマンドなので、適当でよい)
②-3. 作成するアプリの種類を指定
今回は「Slash Commands」を指定
②-4. 「Create New Command」
②-5. コマンドの設定を入力
つまることはないと思うが、各英語の説明は以下
英語 | 意味 |
---|---|
Command | コマンドの文字 |
Request URL | このコマンドを入力した時にPostする先 httpsの必要があるので注意 今回は先ほど公開したURLを入力 |
Short Description | コマンドの説明 コマンドUsageの右側に灰色で表示される |
Usage Hint | コマンドを途中まで打ったときに出てくる説明 [ ] で囲ってあげると丁寧 |
②-6. コマンドをワークスペースにインストール
個人的なハマりポイントでした。
ここまでの手順でコマンドの作成ができたのですが、コマンドをワークスペースにインストールする作業が必要となります。
Settingsの「Basic Information」から「Install your app to your workspace」の
「Install App to Workspace」をクリック
さいごに「Authorize」でインストールすることができます。
以上のことをやった上で、Slackで /today
というコマンドを打ってみます。
今日の日付が帰ってくることがわかると思います。
ポイントは以下の通り
・ウェブアプリケーションとして公開するときの設定
次のユーザーとしてアプリケーションを実行: 自分([自分のメールアドレス]) アプリケーションにアクセスできるユーザー: 全員(匿名ユーザーを含む)
・GoogleAppsScriptを更新したときはプロジェクトバージョンを新しくする
・GoogleAppsScriptはdoPost関数を使用する
・ユーザーに公開する場合はjsonの中に "response_type": "in_channel"
を入れること
・コマンドの作成だけでなく、コマンドのインストールをすること
結構ハマりポイントが多いですが、頑張ってください。