クラウド活用

【全自動】チャットワークを無料でGmailにバックアップする方法

チャットワークって、有料版の一番高いプランじゃないとバックアップ機能が使えないんですよね。。

しかも日々新しいチャットが飛ぶので、定期的にバックアップするのも面倒なところ。

そこでオススメなのが、チャットをGmailに転送してバックアップ代わりにする方法です。

ちょっとしたプログラムが必要ですが、コピペで済むようにまとめたので、7分ほどお付き合いください。

ちなみに「Gmail をチャットワークに転送」する方法は探せばたくさん見つかりますが、その逆の「チャットワークを Gmail に転送」する情報って少ないので、Gmail に情報を一元化したい方にもご参考になるかと思います。

チャットをGmailに転送する3つのメリット

公式バックアップ機能と比べて、チャットをGmailに転送する方法だと

  1. 無料でバックアップを取れる
  2. 一度セットすれば放置でOK
  3. Gmailでチャットを検索できる

の3つのメリットがあります。

メリット1:無料でバックアップを取れる

チャットワーク_料金プラン
チャットワーク

本来は有料の「エンタープライズ」プランでしか使えないバックアップを、フリープランでも取得できるようになります。

とはいえ、チャットワークが用意してくれている公式バックアップ機能ではないため、似たような仕組みを自分で作ることになります。(詳しい方法は後述)

メリット2:一度セットすれば放置でOK

日々あたらしいチャットが飛び交うので、公式バックアップ機能だと定期的に取らないといけません。

ところがGmailへの転送であれば、毎日や1時間毎など好きなペースで自動取得できます

メリット3:Gmailでチャットを検索できる

チャットワークにも検索機能がありますが、転送しておくことでGmail上でもチャットを検索できるようになります

「●●の件ってチャットで送ったんだっけ?それともメールだったっけ…」と曖昧なときも、とりあえずGmailで検索すればヒットするので見つけやすくなります。

注意:添付ファイルはバックアップできない

このあと具体的にチャットをGmailに転送する方法をご紹介しますが、転送できるのはメッセージのみで、添付ファイルは取得できないのでご注意ください

そして、チャットで届いたファイルは開いて読んだら終わりにせず、面倒でもGoogleドライブに保存しておくのがオススメです

チャット相手の都合でファイルを消されることもないですし、Googleドライブ上でファイルの中身まで検索可能になるので、ここはひと手間かけておく価値があります。

ほぼコピペでOK。API と GAS でチャットを自動転送する方法

それでは、実際にチャットをGmailに転送する仕組みをつくっていきましょう。

流れとしては次の2ステップです。

  1. チャットワークのAPIトークンを取得する
  2. GAS(Google App Script)でプログラムを動かす

ステップ1:チャットワークのAPIトークンを取得する

まずはチャットワークの「APIトークン」を手に入れます。

APIトークンとは、API(外部からシステムを操作する仕組み)を使うための鍵のようなモノになります。

APIトークン発行ページ を開いて、チャットワークのパスワードを入力します。

(チャットワークにログインしていない場合は、先にログイン画面が出ると思うので、まずはログインしてください)

チャットワーク_AIPトークン_パスワード入力
ChatWork

▼APIトークンが表示されます。あとで必要になるので、このまま画面を残しておきます。

チャットワーク_AIPトークン_発行完了
ChatWork

ちなみに、APIトークンはパスワードのようなものなので、他人に教えたりしないように管理してください

ステップ2:GAS(Google App Script)でプログラムを動かす

チャットワークを外から操作できるようになる鍵が手に入ったので、次は操作するためのプログラムを用意します。

今回は、Googleアカウントを持っていれば無料で使える「GAS(Google App Script」というサービスを使ってプログラムを動かします。

プログラムを用意する

GAS のページを開いて Starg Scripting をクリックします。

GAS_スタートページ
Google App Script

新しいプロジェクト をクリックします。

GAS_新しいプロジェクト
Google App Script

▼プログラムを入力する画面になります。まずは最初からあるプログラムを消してまっさらにします

GAS_コード画面_クリア
Google App Script

次のテキストをすべてコピーして、さきほど文字を消した部分にペースト(貼り付け)します。

function noticeChatworkMessage(){

	// 必要な情報を設定
	var chatworkToken = '書き換える部分①'; //チャットワークのAPIトークン
	var mailFrom = '書き換える部分②'; //通知を送るEメールアドレス
	var mailTo = '書き換える部分③'; //通知を受けるEメールアドレス
	var apiBaseUrl = 'https://api.chatwork.com/v2'; // チャットワークAPIのベースURL
	
	// チャット一覧を取得
	var room = {};
	var url = apiBaseUrl + "/rooms";
	var params = {
		headers : {"X-ChatWorkToken" : chatworkToken},
		method  : "get"
	};
	var response = UrlFetchApp.fetch(url, params);
	if(response == "") return false;
	var json = JSON.parse(response.getContentText());
	for(var key in json){
		room[json[key]["room_id"]] = json[key]["name"];
	}
	
	for(var roomId in room){
		
		// メッセージを取得
		var roomName = room[roomId];
		var url = apiBaseUrl + "/rooms/" + roomId + "/messages";
		var response = UrlFetchApp.fetch(url, params);
		if(response == "") continue;

		// 取得メッセージをメール送信
		var json = JSON.parse(response.getContentText());
		for(var key in json){

			// メールのタイトル
			var mailSubject = "【Chatwork転送】" + json[key].account.name + "からのメッセージ";
			
			// メール本文
			var mailBody = "";
			mailBody += "【" + roomName + "】\n";
			mailBody += json[key].account.name + "より:\n";
			mailBody += "------------------\n";
			mailBody += json[key].body + "\n";
			mailBody += "------------------\n";
			mailBody += 'https://www.chatwork.com/#!rid'+roomId;

			GmailApp.sendEmail(
				mailTo,
				mailSubject,
				mailBody,
				{from: mailFrom, name: "チャットワーク"}
			);

			Logger.log(json[key]);
			Logger.log(json[key].body);
		}
	}
}

▼貼り付けたら、4~6行目の「書き換える部分」を次のように書き換えます

注意点としては、「’」の記号は消さないで、’ と ‘ で文字を囲うように書き換えます。

書き換える部分①チャットワークのAPIトークン
書き換える部分②自分のGmailアドレス
書き換える部分③自分のGmailアドレス
GAS_パラメータ設定
Google App Script

APIトークンを書いたら、表示したままだったチャットワークの画面は閉じてOKです。

▼書き換えができたら、フロッピーアイコン(保存) をクリックして保存します。

GAS_コード保存
Google App Script

▼これでプログラムの用意ができたので、ちゃんと動くか一度テストしてみましょう。

実行 をクリックします。

GAS_実行テスト
Google App Script

▼ここでセキュリティの警告が出るかと思いますので、アカウント選択 → 詳細 → 無題のプロジェクト(安全ではないページ)に移動 → 許可 とクリックしていきます。

GAS_トリガー保存_Googleアカウント選択
Google App Script

GAS_トリガー作成_警告1
Google App Script

GAS_トリガー作成_警告2
Google App Script

GAS_トリガー作成_警告3
Google App Script

▼下の方にこんなふうにメッセージが出ればOKです。そして Gmail に過去のチャットの内容が届いていると思います。

※もしエラーになったら、もう一度 プログラムを丸ごとコピペ → APIトークン等を書き換え を試してみてください。

GAS_実行テスト成功
Google App Script

タイマーをセットする

プログラムが用意できたので、10分置きなど決まったタイミングで自動でプログラムを実行するようにタイマーをセットします。

▼左側の 目覚まし時計アイコン(トリガー) をクリックします。

GAS_トリガーをクリック
Google App Script

トリガーを追加 をクリックします。

GAS_トリガー追加をクリック
Google App Script

下記①の部分で「プログラムを繰り返し実行する間隔」を選んで 保存 をクリックします。

もし最短の1分間隔とかにしても、一度Gmailに転送したチャットは2回目からは転送されないので、毎回同じメールが大量に届くという心配はありません。

下の例では、1時間おきに自動でプログラムを実行します。

GAS_トリガー設定
Google App Script

▼これでトリガー(自動実行タイマー)がセットされました。

GAS_トリガー作成完了
Google App Script

▼さいごに、今回つくった「プログラム+実行タイマー」に分かりやすい名前を付けておきましょう。

「無題のプロジェクト」の部分をクリックすると名前を変えられます。

GAS_プロジェクト名変更
Google App Script

以上でチャットワークを自動でGmailに転送する仕掛けが完成です。

おつかれさまでした!

なお、GASのページ からタイマーの実行間隔などを後から変えられるので、調整が必要になったらアクセスしてみてください。

今日から放ったらかしでチャットをバックアップしよう

API と GAS という2つの仕組みを使うことで、1円もかけずに全自動でチャットワークをGmailに転送する方法をご紹介してきました。

バックアップのみならず、Gmail上でチャットの内容を検索できたりと便利になりますので、ぜひお試しください。

最後まで読んでいただきありがとうございました。

※本記事のソースコードは Google Apps Scriptを使いChatworkの特定ルームの自分宛てのメッセージをほぼリアルタイムでメール送付する方法|技術かじり虫 を参考にさせていただきました。


【無料】フリーランスのIT教科書

・仕事用の電話番号とメール
・ホームページに新しい名刺と
・あと銀行口座や経理ソフトも…

 

フリーランスになると、自分でいろいろ用意するモノがあります。でもITの分野はよく分からなかったり…。

そこで、お金をかけずにITまわりを整える方法を毎日1つずつお届けするメール講座はじめました。フリーランスの方にはご参考になるかと思います。

家内SEの仕事術

コメント

タイトルとURLをコピーしました