目次
このページを見てわかること
- LarkのグループチャットにAPI経由でメッセージを送信する方法
- Larkでbotを追加し公開する方法
お客様
B社様 代表取締役
エンタメ系
従業員3名
オフィスで営業活動&事務がメイン
背景
Larkのグループチャットにてコミュニケーションや資料共有をされているお客様。
自社開発の業務管理ツール(以下、ツールA)の処理結果を毎回Webからログインし確認していた。
その作業に週、数時間かかっていた。
提案
ツールAの処理結果をスクレイピングで監視し、処理結果をLarkのグループチャットに共有する仕組みを導入してはどうか?
ツールAはWeb上のシステムであるためPythonのスクレイピングで監視が可能。
監視結果をサーバー側でごにょごにょして、LarkにAPI経由でグループチャットに送信すれば、週数時間の確認業務をなくせる。
課題
Larkはノーコードで色んなことができるが、システム開発に携わった経験がない方がさわると難しい印象がある。
今回はAPI連携を行うので、Lark Developerというサイトからbotの追加や設定をおこなう。こっちはゴリゴリ開発者向け。
このLarkのAPI連携、実際に連携手順を書いてる記事が全く見当たらない。
Lark Developerに細かく説明が記述されているが、英語だし項目多すぎだし、どうもわかりにくい。
なので感覚で進めてくしかない。
対応
1. Lark Developerからアプリを追加する
Lark Developerへアクセスしましょう。
右上の「Developer Console」からコンソール画面へ移動します。

「Create Custom App」を選択します。

「Name」と「Description」にそれぞれアプリ名とアプリの説明を入力しましょう。
決まったら「Create」を押します。

アプリが追加されました。この時点ではまだアプリは非公開状態です。使用できない状態ですね。

2. アプリの設定を行う(botの設定&権限の追加)
追加したアプリの初期設定を行いましょう。
今回はチャットへメッセージ送信を行うアプリを作るので「bot」を選択しAddを押します。

はい、これでbotとして動くアプリになりました。
ちなみにほかにも選択肢がありますが、何が何かはわかってません。今後開発で使うタイミングがあれば使います。

次にbotの権限を追加します。
権限を追加しないとチャットへの読み書きができず、botを動かしたときに権限エラーが出て失敗します。
「Permissions & Scopes」を選択し、「Manage scopes」で必要な権限を検索しましょう。
「Send」と入力しましょう。
メッセージ送信に必要な権限が表示されるので、それぞれ「Add」を押して権限追加します。

これで権限追加の完了です。

3. アプリを公開する
権限の追加が完了したらアプリを公開しましょう。
「Create Version」を押します。

App VersionとUpdate Notesを入力しましょう。
App Versionはフォーマットが決まっているので「1.0.0」とかにしておきましょう。

あとは「Save」を押して公開しましょう。
「The current changes have been published」と表示されたら公開完了です。

APIを使うために必要なキーが発行されているので、あとで参照しましょう。

4. 送信先のグループチャットにbotを追加する
グループ作成の部分は割愛します。
作成したグループに前述で作成したbotを追加しましょう。
デスクトップアプリに戻り「…」から「設定」を選択します。

ボットを選択します。

先ほど追加したbotがいるので、選択して追加しましょう。

するとグループチャットの左上にロボットマークが表示されます。

5. chatidを取得する
次にchatidを取得します。
このidはAPIでメッセージ送信をする上で必要になるもので、各グループチャットに割り当てられているidです。
ここから取得します。
画面右側の「token」を押します。
APIを使うためにはトークンを発行する必要があります。
ちなみにこのトークン、有効期限が2時間だそうで、有効期限が切れたら更新が必要です。
実装時はこれも考慮する必要がありますね。

トークンを発行したら、下部の「Run」を押しましょう。

そうするとResultのところに以下結果が返ってきます。
ここのchat_idが必要になるので保存しましょう。

6. Send Message APIにパラメータを設定する
さて、これで準備が整いました。APIでメッセージを送信しましょう。
ここではLark Depeloper内の機能を使ってAPIを使います。
Send Message APIから実施します。
まず先ほどと同じようにトークンをセットします。
次に「receive_id_type」で「chat_id」を選択します。
最後に「receive_id」に手順5で取得したchat_idを指定します。

7. メッセージを送信する
最後にRunを押してメッセージを送信します。
するとチャットにメッセージが届きます。これで完了です。

補足
パラメータに指定する「uuid」ですが、同一のものを指定しての送信は1時間に1回までと制限されています。
そのため1時間に1回以上メッセージを送信するときは、実装者側で任意にuuidを発行する必要があります。
私はこれに気づかず数時間なやみましたorz
お客様の声
満足して頂けました。
今までのツールAの確認業務が短縮され、文字通り「業務効率化」につなげることができました。
他にもまだ効率化できそうな部分が沢山あり、引き続きお付き合い頂けるとのことで、大変ありがたいです。
この記事をご覧の方で、何かお力になれることがあればぜひご連絡ください。