Googleカレンダーとチャットワークのタスクを連携する方法

こんにちは!藤堂です!
社内・社外のコミュニケーションツールにチャットワークを使っている方も多いのではないでしょうか?
今回はGoogleカレンダーとチャットワークのタスクの連携方法をお伝えします!

チャットワークのAPIトークンを取得する

①チャットワークの右上のアイコンをクリックし、「APIトークン」を選択します。

 

 

 

 

 

 

 

 

 

 

 

②チャットワークログイン時のパスワードを入力し、表示をクリックします。

③APIトークンが表示されるので、「コピー」をクリックします。

Googleカレンダーで新しいカレンダーを作成する

Googleカレンダーでチャットワーク用に新しいカレンダーを作成します。
既存のカレンダーと連携すると他の予定が消えてしまう可能性があるため、新規のカレンダーを作成することをおすすめします。

①Googleカレンダー画面から「新しいカレンダー」を作成する。
他のカレンダーの右にある「+」をクリックし「新しいカレンダーを作成」を選択する。

②作成したカレンダーの設定をします。
作成したカレンダーの︙をクリックし「設定と共有」を選択します。

カレンダーIDをコピーします。後ほどこのIDを使用します

GoogleドライブでGoogleAppsScriptを作成する

Googleドライブを開き、「+新規」ボタンからGoogleAppsScriptを選択します。
※ない場合は「+アプリを追加」からインストールしてください。

①無題のプロジェクトを立ち上げます。
赤枠は削除しておきます。

②以下のスクリプトをコピーし、スクリプトに貼り付けます。

/*—- 初期設定ここから—-*/

// チャットワークAPIトークンを設定
var ChatWorkToken = ‘チャットワークAPI’;

// googleカレンダーIDを設定 ※専用のカレンダーを作成することをオススメします
var CALENDAR_ID = ‘カレンダーID’;

/*—- 初期設定ここまで —-*/

// 識別キー
var SIGNATURE = “fromChatWork”;

/*—- メインFunction —-*/

function myFunction(){

// 最初にすべての予定をクリアする
clearAllEvents();

// ChatWork apiに投げるパラメータを設定
var params = {
headers : {“X-ChatWorkToken” : ChatWorkToken},
method : “get”
};

//未完了のタスクを取得するURL
var url = “https://api.chatwork.com/v2/my/tasks?status=open”;

//チャットワークAPIエンドポイントからレスポンスを取得
var strRespons = UrlFetchApp.fetch(url, params);

//レスポンスがない場合は終了
if(strRespons == “”) return false;

//レスポンス文字列をJSON形式として解析しJSONオブジェクトとして返す
var json = JSON.parse(strRespons.getContentText());

Logger.log( “未完了タスク数: ” + json.length );

// googleカレンダーオブジェクト作成
var calendar = CalendarApp.getCalendarById(CALENDAR_ID);

// タスク毎に予定を作成
json.forEach(function(obj) {

// タイトルを設定
var title = obj.body;
title = title.split(String.fromCharCode(10)).join(‘ ‘); // 改行をスペースに置換
title = title.replace(/\[/g, “<“); // chatworkのタグを “[” → “<” に変換 title = title.replace(/\]/g, “>”); // chatworkのタグを “]” → “>” に変換
title = title.replace(/<(“[^”]*”|'[^’]*’|[^'”>])*>/g, “”); // タグを削除
title = title.substring(0,50); // タイトルは50文字で切る

// 期限のないタスクの場合はログを残してスキップ
if( obj.limit_time !== 0 ){

// UNIXTIMEを変換してdateにセット
var date = new Date( obj.limit_time * 1000 );

// 説明欄を設定
var description = obj.body;
description += String.fromCharCode(10) + “——————————“;
description += String.fromCharCode(10) + obj.room.name; // ルーム名
description += String.fromCharCode(10) + “https://www.chatwork.com/#!rid” + obj.room.room_id; // ルームURL
description += String.fromCharCode(10) + “依頼者: ” + obj.assigned_by_account.name; // 依頼者

var options = {description: description};

// 終日のイベントを作成
var event = calendar.createAllDayEvent(title, date, options);

// イベントにタグ付け
event.setTag(SIGNATURE, “true”);
}
});
}

/*—- 前後1年間の予定をクリアするFunction —-*/

function clearAllEvents() {

// googleカレンダーオブジェクト作成
var calendar = CalendarApp.getCalendarById(CALENDAR_ID);

// 今日の日付取得
var date = new Date();
var d1 = new Date();
d1.setDate(1);
d1.setMonth(d1.getMonth()-12);
d1.setHours(0);
d1.setMinutes(0);
d1.setSeconds(0);

var d2 = new Date();
d2.setDate(1);
d2.setMonth(d2.getMonth()+12);
d2.setHours(0);
d2.setMinutes(0);
d2.setSeconds(0);

// 今日の年、月、日を格納
var year = date.getYear();
var month = date.getMonth();
var day = date.getDate();

// 予定を取得
var events = calendar.getEvents(d1,d2);

for (var i in events) {
var event = events[i];
event.deleteEvent();

}
}

③赤文字になっている「チャットワークAPI」と「カレンダーID」をそれぞれ置き換えます。

④保存ボタンをクリックし名前を付けて保存します。

スクリプトを実行する

①プルダウンメニューより「myFunction」を選択し▶ボタンをクリックしてスクリプトを実行します。

②実行の承認が求められるので「許可」ボタンを押します。

ログインをします。

許可をクリックします。

処理が完了すると、カレンダーに予定が追加されます。

トリガーを設定する

トリガーを設定すると、自動で最新タスクがカレンダーに反映されます。
時計マークをクリックし、トリガーを作成します。

追加ボタンを押すと作成画面が表示されます。

「myFunction」、「時間主導型」、「時間ベースのタイマー」、「1時間ごと」、「毎日通知を受ける」を選択し保存します。

1時間に1度、自動的にカレンダーに更新されるよう設定されました。

まとめ

いかがでしたでしょうか?普段の業務にチャットワークを利用される方も多いと思うので、連携ができると便利ですよね!
ぜひ一度ご活用ください!

関連する記事

Gmailから会議を打診!?Googleカレンダーを圧倒的に使いこなす方法

 

 

  • シェア
  • twitter
The following two tabs change content below.

インファクト編集部

中堅・中小企業売上UP研究所by株式会社インファクト【INFACT】です。WEB&ソーシャルメディアマーケティングを得意とし販売促進支援企業として販促コンサルティングからWEB制作・カタログ・パンフレット制作まで企業の売上アップをサポートします。http://www.infact1.co.jp/
  • twitter
  • このエントリーをはてなブックマークに追加
PAGE TOP
LINE it!