見出し画像

GAS超入門⑥ - chatworkに通知してみる

はじめに

「昨日の売上を毎日スプレッドシートで集計してChatworkにコピペして通知してる」

「残業時間が45時間を超えそうな人を抽出してChatworkに通知してる」

こんな面倒な仕事してませんか?
それ、全てGASで自動化しましょう!

という訳で今回はGASでChatworkに通知する方法を学んでいきます。これでスプレッドシートと連携して、上記のような面倒な処理を自動化して、業務効率化したり、これらの案件を30,000円で受注したりと、金を稼ぐ力を手に入れましょう

1. Chatworkのアクセストークンを取得

Chatworkに通知するためにまずアクセストークンを取得する必要があります。
※ ちなみにChatworkのアカウントが無い人は以下の記事を参考に作っておいてください。

1-1. 人のアイコンをクリック → 「サービス連携」をクリック

画像2


1-2. 左のメニューからAPI Tokenをクリック → パスワードを入力して、「表示」をクリック

画像3


1-3. API Tokenが発行されるのでコピー 

※ これは第三者に漏れると、チャットの中身やファイルが取られますので、絶対にもれないように気をつけてください

画像4


これで下準備は完璧です。

2. そもそもAPIって?HTTPって?メソッドって?

APIとは、アプリケーションを外部から便利に扱うためのものです。

スクリーンショット 2020-07-08 23.59.18


HTTPとは、インターネット上のやり取りをする時の約束ごとです。例えば、僕らがTwitterを見る時もこの約束事の元に成立しています。

何か

スクリーンショット 2020-07-09 00.13.03
POSTメソッドとは、何か情報を取得する時のGETメソッドと、何か情報を伝えるPOSTメソッドがあります。

例えば、chatworkのメッセージの一覧が欲しいときはGETメソッドだし、部屋を作ったり、メッセージを送ったりするときはPOSTメソッドを使います。

スクリーンショット 2020-07-09 00.13.50

スクリーンショット 2020-07-09 00.13.55

3. Chatworkにメッセージを送信してみる

一般的に、「GAS ChatWork」で検索すると、こちらのライブラリを使った方法が紹介されてますが、今回はChatWorkの公式APIをつかった方法を紹介しますね。

※ このライブラリは、一般的にAPIのラッパーと呼ばれるもので、APIを簡単に使えるようにした便利グッズみたいなものですね。

公式のAPIを使って通知する処理を書くとこんな感じになります。
(以下でちゃんと解説します)

function sendChatWork() {
 // チャットルームのID
 let roomId = "【通知したいルームのID】"
 
 // チャットを送信する用のURL
 let url = `https://api.chatwork.com/v2/rooms/${roomId}/messages`
 
 let userName = "スキプラ"
 let message = `
 こんにちは${userName}さん\n
 これはGASから自動的に通知してます
 `
 
 // チャット送信に使うオプション
 let options = {
   "method" : "post",
   "headers" : {
     'X-ChatWorkToken': "【先程取得したアクセストークン】"
   },
   "payload" : {
     "body" : message
   }
 }
 
 // ChatWorkに通知する
 UrlFetchApp.fetch(url, options)
}

3-1. チャットルームのIDの取得方法

通知したいルームを選択し、URLを見ると、「chatwork.com/#ridxxxxx」とridの後に数字がありますので、これを取得してコードの「roomIdに代入します」

画像5


3-2. ルームに通知するためのURLを用意

公式のドキュメントを参考にします。

このURLには色んなエンドポイント (処理の違い)が用意されてるのが分かります。

基本URLhttps://api.chatwork.com/v2/
/me : 自分の情報を取得 (methodはGETです)
/my: 自分の未読数や、未完タスクの数などを取得 (methodはGETです)
/contacts: 自分のコンタクト一覧を取得 (methodはGETです)
/rooms: 部屋に通知したり、部屋の情報を取得したり、部屋を作ったり(/rooms/の下のメソッドによってGETかPOSTか変わる)
/incoming_requests : 自分への承認依頼一覧を取得など (methodはGET)

今回は、この「rooms」の「rooms/messages」を使ってメッセージを送ります。

3-3. optionを作る

chatworkのAPIには大きく3つ必要です。

method: GET(取得系) or POST(更新系)
headers: 今回はAPIトークン
payload : body(メッセージの中身など)

この3つを含めたオブジェクトを作っておきます

3-4. UrlFetchAppオブジェクトのfetchメソッドでPOSTメソッドで通信する

スクリーンショット 2020-07-09 00.23.36

実際に送ってみた結果

スクリーンショット 2020-07-08 22.57.55

無事に届きましたね!!
他にもGASからタスクを作ったり、chatworkでタスク一覧を聞いた時に教えたり、可能性は無限大なので、ぜひAPIで遊んで見てください。

実践編で利用するための基礎編はすべて無料公開してます。 基礎編のモチベーション向上のためにサポートして頂けるとめちゃくちゃ喜びます!! だいたい作業工数は1記事あたり4-5時間程度かけて【分かりやすい】【知識が身につく!】を意識して作っておりますので、今後も頑張っていきます!