0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【GAS】スプレットシートの内容をChatworkに複数のタスクとして追加する

Last updated at Posted at 2020-04-29

※投稿内容は個人の学習目的の記事であり、所属組織とは一切関係ありません。
 Chatwork公式ドキュメントではございませんので、自己責任でご利用ください。

こんにちわ、さかぐち(@sakaguchi_mamii)です。

ChatworkにはTODOを管理する「タスク」機能があります。

タスクの基本的な使い方 – サポート | Chatwork

タスクをまとめて追加したい場面がありますが、標準機能では準備されていません。
そこで、今回はGASを利用して、スプレットシートの内容をまとめてタスク登録しようと思います。

#APIトークンを取得する

右上のメニューから「API設定」を選択する。
API設定.png

パスワードを入力し、APIトークンを取得する。
スクリーンショット 2020-04-29 20.30.31.png

#ルームIDを取得する

タスクを登録するグループチャットのルームIDを取得する。
スクリーンショット_2020-04-29_20_32_05.png
グループチャットのURL末尾の数字がルームIDとなります。

#タスク担当者のアカウントIDを取得する

タスクを担当する担当者のアカウントIDを取得する。
スクリーンショット_2020-04-29_20_35_56.png

Toの後ろの数字がアカウントIDとなります。

#ライブラリを読み込む

Chatworkにタスクを登録する部分は「Chatwork Client for Google Apps Script」を利用します。
https://github.com/cw-shibuya/chatwork-client-gas

プロジェクトキー: M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT

スクリーンショット 2020-04-23 11.54.09.png

#スプレットシートを準備する

タスクを登録する用のシート(シート名:タスク)
※スクリプト内でシート名と情報が記載されているセルの場所を指定し情報を取得します。
スクリーンショット 2020-04-29 20.41.02.png

アカウントID等、固定の情報を記載するシート(シート名:基本情報)
※スクリプト内でシート名と情報が記載されているセルの場所を指定し情報を取得します。
スクリーンショット_2020-04-29_20_59_24.png
※スクリプト内でシート名を指定し、情報を取得します。

#スクリプト作成

const token = 'APIトークン';

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  // 基本情報を取得
  const basic_info = ss.getSheetByName('基本情報');
  var room_id = basic_info.getRange(2, 1).getValue();
  var account_id = basic_info.getRange(2, 2).getValue();

  // タスク情報を取得
  const task_list = ss.getSheetByName('タスク');
  const lastRow = task_list.getLastRow();

  // 記載がある分だけ繰り返し
  for(let i = 2; i <= lastRow; i++) {

    // 内容
    var body = task_list.getRange(i, 1).getValue(); 
    // 期日
    var limit = new Date(task_list.getRange(i, 2).getValue());
    limit = (new Number(limit.getTime() / 1000)).toFixed();
    // タスク追加
    var param = {
      limit: limit,
      body: body,
      room_id: room_id,
      account_id: account_id
    }
    addTask(param);

  }
}

// タスク追加処理
function addTask(param) {

  var client = ChatWorkClient.factory({token: token});
  client.sendTask({
    limit: param.limit,
    to_id_list:[param.account_id],
    body: param.body,
    room_id: param.room_id
  });

}

#テスト

スクリプト実行!
スクリーンショット 2020-04-29 21.01.11.png
スプレットシートに記載したタスクが登録されました!

#最後に

無事にタスクを登録することができました。(よかった)

久々にコードを書いて公開しているので、間違っている場所や分かりづらい点があればご指摘ください!

今後やりたいこと!

  • 指定のキーワードをグループチャットに投稿すると自動でタスクが登録される仕組み
     (前提条件:該当のグループチャットにタスク登録BOTが存在していること)
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?