- Gmailに届いた特定のメールだけをChatworkに自動投稿させたい
- ChatworkでGmailの通知を受け取りたい
Gmailに大事なメールが届いていたのに見逃してしまうというミスをしてしまったので、特定のメールが届いた時だけ愛用中のChatwork(チャットワーク)に自動投稿させることにしました。
ステップとしてはたくさんあるのですが、基本はコピペでOK!Chatwork無料版でも設定は可能です。
所要時間はトータル30分くらいです^^
Chatworkへの自動投稿に必要なもの&事前準備
- Gmailメールアドレス
- Gmail側でのフィルター設定
- ChatworkのAPIトークン
- Chatworkに自動投稿させるグループチャット
1. ChatworkのAPIトークンを確認する
Chatworkにログイン後、画面右上にあるアカウント名をクリックして「サービス連携」をクリックします。
左メニューから「APIトークン」をクリックして、APIトークンの文字列が表示されているか確認します。
表示されたAPIトークンの横にある「コピー」ボタンをクリックして、APIトークンをテキストエディタやメモ帳アプリに貼り付けておきます。
2. Chatworkに通知用のグループチャットを作成する
2-1. グループチャットを作成する
自動投稿させるためのグループチャットを作成します。左側メニュー上にある「+」ボタンを押して、「グループチャットを新規作成」をクリックします。
グループチャット名や説明を入力します。ここでは、「申込自動通知」というチャット名にしました。
必要に応じて、コンタクトを追加します。
画面下の「作成する」ボタンを押すと、作成した「申込自動通知」グループチャットが作成されます。
2-2. グループチャットのルームIDを確認する
Chatworkの左側にあるチャット一覧から、いま作成したグループチャット(ここでは「申込自動通知」)をクリックして、画面右上のネジマークから「グループチャットの設定」をクリックします。
グループチャットの名前と概要、ルームIDが表示されます。
グループチャット名とルームIDを、さきほどのAPIトークン同様にテキストエディタやメモ帳アプリに貼り付けておきます。
3. Gmailでフィルター設定をする
次に、Gmail側の設定に入ります。Gmailに届く「特定のメール」を指定するために、メールのフィルター設定を行います。
Gmailのフィルター設定については、下記ブログ記事を参考に設定してください。
Gmailのフィルター設定が終わったら、フィルター適用時のラベル名を、さきほどのAPIトークン同様にテキストエディタやメモ帳アプリに貼り付けておきます。上記ブログ記事では「仕事用」がフィルター適用時のラベル名になります。
4. GmailとChatworkを連携させるための設定する(Google Apps Script)
ちょっとここからは若干ハードルがあがりますが、すでに先人がとても便利にプログラムを作ってくださっていたので、ありがたく使わせてもらいます。
※CSnavi様(https://ingage.jp/media/cs/)ありがとうございます
Chatworkに自動投稿させたいメールが届くGmailアカウントにログインした状態で、下記リンクをクリックします。
https://script.google.com/home/projects/15rhCWHK3bIfoSObMItDfLzOIFIAkjryqYDJuLySb7b2Z8OgOrHiw5P2L
プログラムが表示されるので、画面を閉じたくなるかもしれませんが、難しい作業ではないので安心してください。
表示された画面の右上にある「コピーを作成」ボタンをクリックします。
そうすると、今ログインしているGmailアカウントのGoogleドライブ上に、「Copy of Gmail→Chatwork」というファイル名でコピーされたスクリプト画面が表示されます。
4-1. Google Apps Scriptの設定箇所
この画面で設定する値は、次の6つです。次の6つを設定することで、「Gmailでフィルター設定した特定のメールを受信したら、Chatworkの通知用グループチャットに自動投稿し、Gmail側では既読メールとする」ことができます。
- cw_token(ChatworkのAPIトークン)
- gmail_label(Gmailのフィルター設定した時の表示ラベル名)
- room_id(Chatworkの通知用グループチャットのルームID)
- mark_read(Gmail側で既読メールとして処理する)
- excerpt_length(Chatworkに表示させる文字数)
- to_id(ChatworkでTO表示させる)
cw_tokenを設定する
cw_tokenは、ChatworkのAPIトークンを記載する箇所です。xxxxxxとなっているところを「1. ChatworkのAPIトークンを確認する」でメモしておいたChatworkのAPIトークンに書き換えます。
gmail_labelを設定する
gmail_labelは、Gmailのフィルター設定した時の表示ラベル名を記載する箇所です。””(ダブルクオテーション)の間に「3. Gmailでフィルター設定をする」でメモしておいたGmailフィルター時に表示させるラベル名をコピペします。
room_idを設定する
room_idは、Chatworkに作ったグループチャットのルームIDを記載する箇所です。初期値は0が表示されていますが、「2-2. グループチャットのルームIDを確認する」でメモしておいたルームIDに書き換えます。
mark_readを設定する
mark_readは、Gmail側のメールを既読にするかどうか?を記載する箇所です。0なら「未読のまま」、1なら「既読にする」を設定します。今回は、Gmail側のメールを既読扱いにしたいので、1を設定しました。
excerpt_lengthを設定する
excerpt_lengthは、メールの本文を何文字分表示させるか?を記載する箇所です。0なら「メール本文」は表示されません。今回は、メール本文を1000文字分表示させたいので、1000を設定しました。
to_idを設定する
to_idは、Chatwork側でTO表示させるアカウントのIDを記載する箇所です。0なら「誰にもTO表示」はされません。今回は、自分宛にTO表示させたいので、私のChatwork IDを設定しました。
設定を保存する
これで、プログラム側の設定は完了したので、「プロジェクトの保存」ボタンを押します。続いて、トリガーの設定をするので画面はそのままにしておいてください。
4-2. トリガーを追加する
トリガーでは、「どのタイミングで自動投稿させるか?」を設定します。左メニューにある「トリガー」をクリックします。
画面下にある「+トリガーを追加」ボタンをクリックします。
表示された画面で変更できるのは、「時間ベースのトリガーのタイプを選択」と「時間の間隔を選択(時間)」のみです。
今回は「時間ベースのトリガーのタイプを選択」を「分ベースのタイマー」、「時間の間隔を選択(時間)」は「30分おき」にしました。
設定が終わったら、右下の「保存」ボタンをクリックします。
4-3. Gmailアカウントの選択画面が表示された場合
トリガー設定後にGmailのアカウント選択画面が表示される場合があります。その場合は、今回Gmailでフィルター設定をしたGmailアカウントを選択します。
「Googleはこのアプリを検証していません」が表示されたら、「高度な…」のリンクをクリックしてください。
隠れとったんかい!と突っ込みたくなりますが、「Gmail→Chatworkコピー連携(危険)へ」をクリックします。
表示された画面下の「許可する」をクリックします。
これで、ChatworkとGmailアカウントが連携しました。
5. Chatworkに自動投稿されるかテストする
すべての設定が完了したので、ここでテストをしてみましょう。
5-1. Gmail宛にテストメールを送る
Gmailで設定したフィルターに引っかかるように、テストメールを送ります。
正常にテストメールを受信し、フィルターに引っかかって設定したラベル名が表示されているか確認します。
テストメールにラベル名が付いていた場合は、Google Apps Scriptの画面を表示させます。
5-2. Chatworkへの自動投稿プログラムを実行する
Google Apps Scriptの左側にある「エディタ」メニューをクリックし、上部にある「実行」ボタンをクリックします。
画面下の「実行ログ」で「実行完了」が表示されたらOKです。
5-3. Chatworkを確認する
Chatworkに戻り、通知用グループチャットに自動投稿されているか確認します。
5-4. Gmailを確認する
最後にGmailのメールが「既読状態」になっているか確認します。自動投稿させたメールが「既読」になっていれば成功です!
お疲れ様でした!!!