![見出し画像](https://assets.st-note.com/production/uploads/images/138429284/rectangle_large_type_2_8b4cd111fc2f515255b12eadd8b2961e.png?width=1200)
AIでChatworkの管理を掌握する!Chatwork GPTの構築方法およびGAS InterpreterとのAPI接続
GPT経由でChatworkのあらゆるAPI操作を実行できるChatwork GPTを開発しました。
Chatworkを普段の業務に使っている方からすると非常に有用なGPTです。
後半では、GAS Interpreter でのChatwork API利用方法についても触れます。
Chatwork GPTの多様な機能
Chatwork GPTは具体的には以下30種類のタスクを実行できます。(ファイルアップロードなど一部動作しないものもあります)
ユーザープロファイル管理
ユーザープロファイルの取得
ユーザー情報を取得して
![](https://assets.st-note.com/img/1714032697098-MqCUV8E8gs.png?width=1200)
ユーザーの現在の状況の取得
私の現在の状況を取得して
![](https://assets.st-note.com/img/1714053700080-KKMjcoPoiE.png?width=1200)
ユーザーのタスクリストの取得
私のタスクリストを取得して
![](https://assets.st-note.com/img/1714053572135-w84vygTszl.png?width=1200)
ユーザーのコンタクトリストの取得
コンタクトリストを取得して
![](https://assets.st-note.com/img/1714032823195-oaiAVca17L.png?width=1200)
ルーム管理
ルームリストの取得
所属ルームを全て取得して
![](https://assets.st-note.com/img/1714036768870-JHfc4rf5eG.png?width=1200)
特定のルームの詳細の取得
5番のルーム情報を取得して
![](https://assets.st-note.com/img/1714053842878-VBn3rhpKwM.png?width=1200)
新規ルームの作成
石川とChatGPT研究所とGPT-botでグループ作っておいて。
![](https://assets.st-note.com/img/1714037308346-iywvzyogDw.png?width=1200)
特定のルームの詳細の更新
このルームの名前を、ボット検証に変えて
![](https://assets.st-note.com/img/1714037657510-aXem1Iikjk.png?width=1200)
Chatwork側で実際に動作している様子:
![](https://assets.st-note.com/img/1714049863636-ihrtXAhjje.png?width=1200)
特定のルームの削除または退出
※このAPIはエラーが出て動作確認ができませんでした。
ルームメンバー管理
特定のルームのメンバーリストの取得
このルームのメンバー一覧を取得して
![](https://assets.st-note.com/img/1714038059182-ARXZTriddk.png?width=1200)
特定のルームのメンバーの更新
メンバーから、GPT-botを削除して
![](https://assets.st-note.com/img/1714038111247-Q36vdVZMsz.png?width=1200)
メッセージ管理
特定のルームのメッセージリストの取得
このAPIは少しトリッキーです。
以下の特徴があります。
最新100件のメッセージを取得
2回目以降の呼び出しは、前回取得したメッセージの続きからになる
force: 1 と指定すれば、常に最新の100件を取得する
重要:GPTsの制限により、メッセージの容量が多すぎるとエラーになってしまう(この制限は不便ですが、force 0 にすれば、新着のメッセージのみを取得するためOK。GAS Interpreterを使うとメッセージ情報を減らしてから取得するなどの工夫が可能)
ルーム327167106のメッセージを取得して
![](https://assets.st-note.com/img/1714041772574-Lz8O8SmODJ.png?width=1200)
特定のルームへの新規メッセージの投稿
返信しておいて
![](https://assets.st-note.com/img/1714049944486-BuMY4CCQtM.png?width=1200)
実際に送信されている様子:
![](https://assets.st-note.com/img/1714049935691-hFQ0zXtePi.png)
特定のメッセージの更新
初めましての挨拶に変えてください。
![](https://assets.st-note.com/img/1714050039386-gkcbQohzH0.png?width=1200)
実際に変更された様子:
![](https://assets.st-note.com/img/1714050052805-4VjA04CDLl.png)
特定のメッセージの削除
やっぱり削除して
![](https://assets.st-note.com/img/1714050118104-4M64nMbrWw.png?width=1200)
特定のメッセージの取得
![](https://assets.st-note.com/img/1714051558098-KEOtZ0gg7r.png?width=1200)
タスク管理
特定のルームに新規タスクの作成
明日の14時までに記事執筆するタスクを入れてください。
![](https://assets.st-note.com/img/1714053114886-UC6DpI7LVO.png?width=1200)
※ Code Interpreterでunix時間を計算しなければならない点に注意
実際に追加されたタスク:
![](https://assets.st-note.com/img/1714053135264-MBM46AqEVe.png?width=1200)
特定のタスクの状態の更新
完了したので、DONEにして
![](https://assets.st-note.com/img/1714053342608-HcYWeQLO68.png?width=1200)
特定のタスクの取得
![](https://assets.st-note.com/img/1714054087782-HdWT2NO9Kq.png?width=1200)
特定のルームのタスクリストの取得
このルームのタスク一覧を取得して
![](https://assets.st-note.com/img/1714053462476-TvZ66ibcml.png?width=1200)
ファイル管理
特定のルームのファイルリストの取得
マイチャットのファイル一覧を取得して
![](https://assets.st-note.com/img/1714054446699-QgR8hO1V1l.png?width=1200)
特定のファイルの取得
![](https://assets.st-note.com/img/1714054528727-WcUZ6UEc0W.png?width=1200)
特定のルームに新規ファイルのアップロード
このAPIは、Actions経由では使えません。
GAS Interpreter 経由ならファイルのアップロードが可能です。
ルーム招待管理
ルーム招待リンクの作成
ルームID:327167106への招待リンクを作成してください。
![](https://assets.st-note.com/img/1714055917479-SnyXWTY2xO.png?width=1200)
ルーム招待リンクの更新
招待メッセージを歓迎する文章に変更して
![](https://assets.st-note.com/img/1714056215495-ZP2OlUhurY.png?width=1200)
実際に作成されたリンク:
![](https://assets.st-note.com/img/1714056180014-KasNzrx4kf.png?width=1200)
ルーム招待リンクの詳細の取得
ルームID:327167106への招待リンクを取得して
![](https://assets.st-note.com/img/1714056377886-d86qczcmB6.png?width=1200)
ルーム招待リンクの削除
このリンクを削除して
![](https://assets.st-note.com/img/1714056457963-QbzwuGy6SA.png?width=1200)
同じURLにアクセス:
![](https://assets.st-note.com/img/1714056448888-wPAZfYcFaB.png?width=1200)
コンタクトリクエスト管理
受信コンタクトリクエストの取得
受信コンタクトリクエストを取得して
![](https://assets.st-note.com/img/1714056800575-9LmGqbBiIk.png?width=1200)
受信コンタクトリクエストの承認
承認して
![](https://assets.st-note.com/img/1714056843260-IZMmXOhJ3q.png?width=1200)
受信コンタクトリクエストの拒否
拒否して
![](https://assets.st-note.com/img/1714056948631-59P1VZzo7D.png?width=1200)
Chatwork GPT の特徴は、30種類のChatworkのAPIを操作できることです。
このGPTの構築方法には、文字数50261文字の巨大なYAMLファイルが含まれます。
このYAMLファイルはChatwork専門のGPTを作るだけではなく、他のGPTに入れ込むことでChatworkへの接続機能をつけることにも使うことができます。
また、別の方法としてGAS Interpreter経由でChatwork APIにアクセスする方法もあり、そちらも同時に紹介します。
GAS Interpreter と繋げた場合
GAS Interpreter経由でChatworkを使用できることの利点は、
- for文などの制御構文をコードで使用することでより柔軟な命令ができること、また重要なポイントとして、
- Chatworkのメッセージ取得APIの出力が多すぎる問題に対処できる点、
- 長大なYAMLファイルが必要ない点が挙げられます。
反対に、YAMLで設定することによる利点は、コード生成が必要ないので、実行スピードが速い点や、API仕様書が正確な点が挙げられます。
GAS InterpreterでChatwork API を扱うことの一番の利点は、プログラム経由でシームレスにGoogleサービスとChatworkがつながることです。
自分の所属するすべてのルームの最新100件までのメッセージをスプレッドシートに構造的にまとめる
私のルーム情報をChatworkで取得して、すべてのルームにおいてメッセージをすべて取得し、それらをスプレッドシートでルームID別でまとめてください。
![](https://assets.st-note.com/img/1714070266806-vkXwZ9W0IL.png?width=1200)
出力されたスプシが以下です。ここには、自分の所属するすべてのルームの最新100件までのメッセージがまとまっています。このようなGoogleを絡める高度な操作は、Chatwork GPTの方ではできません。
![](https://assets.st-note.com/img/1714070346546-WDtgGQfMy9.png?width=1200)
それでは早速、Chatwork GPTの構築方法および、GAS Interpreter での利用方法を見ていきます。
※ Chatwork GPTへのアクセスは、AGIラボ会員の方限定となります。
AGIラボは、最新のAI活用情報が集まるマガジン・コミュニティであり大好評のGAS Interpreterの作り方他、これまでChatGPT研究所が執筆した多種多様なAI関連記事が閲覧できます。
私たちのミッションは、日本にAI強者を増やすことです。
ぜひAGIラボへ加入して、みんなで一緒にAI強者になりましょう。