スマホの共有メニューから登録できる英単語帳をSLACKとGASで作った

 

英単語をSlackに投げると意味を返してくれるSlack Botを作りました。

スマホタブレットで英文を読むときにわからない単語を調べたものの、その文章を読むために一時的に覚えたあと結局忘れてしまうという現象が起こりがちだったので作りました。ネット上の英語コンテンツで雑に勉強してる方や論文に載ってる専門分野の英単語だけは覚えたい人には便利だと思います。

 

備忘録のつもりで書いたのでSlackとGAS(GoogleAppsScript)の前提知識がない人には不親切な記事になっています。よく分からないけど使いたい人がいたら雑に教えてください。暇な時に追記します。

 

SlackのEventをトリガーにするやつでGASと連携して使います。

 

まずGoogleAppsScriptとSlackの設定をします。

SlackのEventSubscription機能を使うので、GASのアレをvarificationするところから初めます。

①GoogleAppsScriptで新規プロジェクトを作成し、以下のコードをコピペしてください。

function doPost(e){
//バリデーション用
var params = JSON.parse(e.postData.getDataAsString());
return ContentService.createTextOutput(params.challenge);
}

function doGet(e){
doPost(e);
}

SlackのEventAPIとGASを利用して、特定のチャンネルにjoinするとwelcomeメッセージを表示するBotを作ってみた|yuichi.komori|note

より引用させていただきました。

②プロジェクトを公開します。「公開」メニューで「ウェブアプリケーション導入」を選択してください。アプリケーションにアクセスできるユーザーは「匿名を含む全員」を選択してください。このとき表示されるURLを控えてください。

 

次にSlackの設定をします

 

③Slackで英単語帳専用に新たなチャンネルを作ってください。そこで動くSlackアプリを新規作成します。

④Basic Information でImcoming WebhooksとEvent Subscription、botを適当に設定してください。Event SubscriptionではReques URLを求められると思うので②で控えたURLを設定します。Imcoming Webhooksで得られる「Imcoming Webhooks」のURLは後で使うので控えておいてください。

上の設定が問題なく済んだらGASに戻り、GASの設定をします。

⑤以下のソースコードを先程のプロジェクトのコードに上書きする形でコピペしてください。

ソースコード

https://script.google.com/d/1NGP-YVhNl5NM8Q43a1SDqpT_x9g5qXYQzy5tJ6GKVQMX8gt4N8FgjYt_

 

 

⑥「リソース」メニューからライブラリを登録します。「ライブラリを追加」のところに以下の英数字列を入力してください。識別子は「SlackApp」に設定します。

M3W5Ut3Q39AaIwLquryEPMwV62A3znfOO

Slack BotをGASでいい感じで書くためのライブラリを作った - Qiita

より引用しました。

 

⑦「ファイル」メニューから「プロジェクトのプロパティ」を開いてスクリプトプロパティに以下の値を設定してください。

USER_ID →(Slackの自分のアカウントのUser ID)

参考:slackに参加しているメンバーのUser IDを調べる方法 - /var/www/yatta47.log

 

SLACK_ACCESS_TOKEN →(Slackのレガシートークン)

参考:Legacy tokens | Slack

 

SLACK_POST_URL →(Slack Imcoming web hookトークン;④で作ったURL)

 

 

⑧再度「公開」メニューから「ウェブアプリとして導入」を選択し、「プロジェクトバージョン」を「新規作成」にして公開してください。

 

⑨終了

 

 

 

 

qiita.com