ロケットチャットAPIの使用方法(WebHookによるDM送信)
ロケットチャットのRestAPIを利用して、外部からDMを送信する方法を記載します。
Note
作業概要
- ①loginAPIを使って、トークンとユーザIDを取得する
https://developer.rocket.chat/reference/api/rest-api/endpoints/authentication-endpoints/login
- ②getRoosAPIを使って、自身が属するチャンネルのルームIDを取得する
https://developer.rocket.chat/reference/api/rest-api/endpoints/rooms/rooms-endpoints/get-rooms
- ③sendMessageAPIを使って、ルームID指定で、メッセージを送る
https://developer.rocket.chat/reference/api/realtime-api/method-calls/messages/send-message
作業詳細
①loginAPIを使って、トークンとユーザIDを取得する
[POST]https://chat.icc.ogis-ri.co.jp/api/v1/login
- Header
- Content-Type:application/x-www-form-urlencoded
- Body
- user=[P付きドメインID]
- password=[オージスドメインのパスワード]
- Response
{
"status": "success",
"data":{
"userId": "XXXXXXXXXXXXXX",
"authToken": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
...etc
※Content-Typeは多分JSONでも大丈夫。(未検証)
Note
|
②getRoosAPIを使って、自身が属するチャンネルのルームIDを取得する
[GET]https://chat.icc.ogis-ri.co.jp/api/v1/rooms.get
- Header
- X-Auth-Token=[①のレスポンスのauthToken]
- X-User-Id=[①のレスポンスのuserId]
- Response
{
"update":[
{"_id": "XXXXXXXXXX", "fname": "チャンネル名",…},
{"_id": "YYYYYYYYYY",…},
{"_id": "ZZZZZZZZZZ",…},
|
③sendMessageAPIを使って、ルームID指定で、メッセージを送る
[POST]https://chat.icc.ogis-ri.co.jp/api/v1/chat.sendMessage
- Header
- X-Auth-Token=[①のレスポンスのauthToken]
- X-User-Id=[①のレスポンスのuserId]
- Content-Type:application/json
- Body
{
"message": {
"rid": [②で取得した_id],
"msg": [送りたいメッセージ]
}
}
※おそらく&つなぎの方でもいいけど、Bodyの構造上JSONがいいと思う ※レスポンスは省略
※Bodyにはそのほかの値の指定も可能(公式ドキュメント参照) ただし、オージスのロケチャには、権限の問題でbotUserとしての書き込みが不可能
|
参考
(Rocket.ChatにAPIで投稿するテスト(Postman)) https://www.yamamanx.com/rocket-chat-apitest-postman/