TypeScriptでGAS向けChatworkライブラリを作ってみた

プログラミング

導入方法

 まずGoogle App Scriptのエディタ上でライブラリを選択します。

ライブラリの追加

 ボタンを押すとライブラリを検索する画面が出てきますので、下記のスクリプトIDを検索します。その後検索結果が表示されますのでバージョンを「2」に選択し、IDを「chatwork」としましょう。個々の名前は何でも良いですが、以降のサンプルでは「chatwork」という名前になっている前提で記載します。

1DXlHJ6kIR7-a5pA2ujqYGN1exKWt1xdJGlp5PoYYgWrYXfzoaJ7kkblD
ライブラリ追加詳細

使い方サンプル

getMe

 Chatworkアカウントの自分自身の情報を取得できる関数です。

リクエスト例

var token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
var chatworkClient = chatwork.ChatWorkClient.getInstance(token)
var me = chatworkClient.getMe()

レスポンス例

{
  account_id: xxxxxxx,
  room_id: xxxxxxxxx,
  name: 'Daichi Mizuno',
  chatwork_id: '',
  organization_id: xxxxxxxxx,
  organization_name: '',
  department: '',
  title: '',
  url: '',
  introduction: '',
  mail: '',
  tel_organization: '',
  tel_extension: '',
  tel_mobile: '',
  skype: '',
  facebook: '',
  twitter: '',
  avatar_image_url: 'https://appdata.chatwork.com/avatar/ico_default_yellow.png',
  login_mail: 'test@gmail.com'
}

getMyStatus

 自分のアカウントの未読数、未読 To 数、未完了タスク数を取得できます。

リクエスト例

var token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
var chatworkClient = chatwork.ChatWorkClient.getInstance(token)
var myStatus = chatworkClient.getMyStatus()

レスポンス例

{
  unread_room_num: 0,
  mention_room_num: 0,
  mytask_room_num: 1,
  unread_num: 0,
  mention_num: 0,
  mytask_num: 1
}

getMyTasks

 自分のタスク一覧を取得できます。利用できるパラメータはMy.d.tsTasksParameterを参照してください。下記例ではstatusがopenになっているタスクのみを取得している例になります。

リクエスト例

var token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
var chatworkClient = chatwork.ChatWorkClient.getInstance(token)
var mvar token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
var chatworkClient = chatwork.ChatWorkClient.getInstance(token)
var params ={
  status: 'open'
}
var myTasks = chatworkClient.getMyTasks(params)

レスポンス例

[
  {
    task_id: 247758651,
    room:
      {
        room_id: xxxxxxxxxx,
        name: 'マイチャット',
        icon_path: 'https://appdata.chatwork.com/avatar/ico_default_yellow.png'
      },
    assigned_by_account:
      {
        account_id: xxxxxx,
        name: 'Daichi Mizuno',
        avatar_image_url: 'https://appdata.chatwork.com/avatar/ico_default_yellow.png'
      },
    message_id: '1534166403387490304',
    body: 'xxxxxxx',
    limit_time: 1642247362,
    status: 'open',
    limit_type: 'date'
  }
]

getContacts

 自分のコンタクト一覧を取得できます。

リクエスト例

var token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
var chatworkClient = chatwork.ChatWorkClient.getInstance(token)
var contacts = chatworkClient.getContacts()

レスポンス例

[
  {
    account_id: xxxxxx,
    room_id: xxxxxx,
    name: 'xxxxxx',
    chatwork_id: 'xxxxxx',
    organization_id: xxxxxx,
    organization_name: '',
    department: '',
    avatar_image_url: 'xxxxxx'
  }
]

getRooms

 自分のチャット一覧の情報を取得できます。

リクエスト例

var token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
var chatworkClient = chatwork.ChatWorkClient.getInstance(token)
var rooms = chatworkClient.getRooms()

レスポンス例

[
  {
    room_id: 142989851,
    name: 'マイチャット',
    type: 'my',
    role: 'member',
    sticky: false,
    unread_num: 0,
    mention_num: 0,
    mytask_num: 1,
    message_num: 13,
    file_num: 0,
    task_num: 1,
    icon_path: 'https://appdata.chatwork.com/avatar/ico_default_yellow.png',
    last_update_time: 1642247591
  }
]

postRooms

 グループチャットを新規作成できます。利用できるパラメータはRoom.d.tsPostRoomParameterを参照してください。ここでは「テストグループ」という名前のグループを自分のアカウントを管理者として作成しています。

リクエスト例

var token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
var chatworkClient = chatwork.ChatWorkClient.getInstance(token)
var params = {
  name: "テストグループ",
  members_admin_ids: "xxxxxxx"
}
var rooms = chatworkClient.postRooms(params)

レスポンス例

{
  room_id: xxxxxxxxx
}

getRoomsRoomId

 グループチャットの名前、アイコン、種類(my/direct/group)などを取得できます。

リクエスト例

var token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
var chatworkClient = chatwork.ChatWorkClient.getInstance(token)
var roomId = "xxxxxxxxx"
var roomsWithRoomId = chatworkClient.getRoomsRoomId(roomId)

レスポンス例

{
  room_id: xxxxxxxxx,
  name: 'テストグループ',
  type: 'group',
  role: 'admin',
  sticky: false,
  unread_num: 0,
  mention_num: 0,
  mytask_num: 0,
  message_num: 2,
  file_num: 0,
  task_num: 0,
  icon_path: 'https://appdata.chatwork.com/icon/ico_group.png',
  description: '',
  last_update_time: 1642251755
}

putRoomsRoomId

 グループチャットの名前、アイコンをアップデートできます。利用できるパラメータはRoom.d.tsPutRoomRoomIdParameterを参照してください。

リクエスト例

var token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
var chatworkClient = chatwork.ChatWorkClient.getInstance(token)
var roomId = "xxxxxxxxx"
var params = {
  description: "テストです",
  icon_preset: "star",
  name: "テストグループ"
}
var updateRoomResponse = chatworkClient.putRoomsRoomId(roomId, params)

レスポンス例

{ 
  room_id: xxxxxxxxx 
}

deleteRoomsRoomId

 グループチャットを退席/削除することができます。利用できるパラメータはRoom.d.tsDeleteRoomRoomIdParameterを参照してください。今回はグループチャットを削除しています。

リクエスト例

var token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
var chatworkClient = chatwork.ChatWorkClient.getInstance(token)
var roomId = "xxxxxxxxx"
var params = {
  action_type: "delete"
}
chatworkClient.deleteRoomsRoomId(roomId, params)

レスポンス例

なし

終わりに

 まだChatworkの全てのAPIを実装してはおらず、一部になりますのでもし必要なものがあれば本ブログの問い合わせもしくはGithubのissueなどからご連絡ください。

GitHub - daichimizuno/chatwork-client-for-google-app-script: chatwork-client-for-google-app-script
chatwork-client-for-google-app-script. Contribute to daichimizuno/chatwork-client-for-google-app-script development by creating an account on GitHub.
最後まで読んで頂きありがとうございます!

面白かった、参考になった、と少しでも感じて頂けましたら
ブログランキング上位になるための応援をして頂けないでしょうか!
今後も面白い記事を更新していきますので、ぜひ宜しくおねがいします!
プログラミング
【TechGrowth】

コメント