Google Apps Scriptを使いChatworkの特定ルームの自分宛てのメッセージをほぼリアルタイムでメール送付する方法

Pocket

タイトル長い。Google Apps Script(GAS)を使って、Chatworkの通知をメッセージ内容付きにする方法です。
特定ルームにおいて、自分宛てのメッセージ内容をほぼリアルタイムでメール送付させます。

Chatwork(チャットワーク)とは

ブラウザ上でチャットをしたりタスクを割り振ったり出来るツールです。もともとはWebベースのチャットアプリでしたが、現在はスマホアプリもあって使いやすくなっています。

仕事では様々なチャットサービスやコミュニケーションアプリを使うことがありますが、結構この「Chatwork(チャットワーク)」を使っているっていう人・会社さんも多いんじゃないでしょうか。Web制作会社とかだとSlackとかが流行りなんでしょうが、IT専業じゃない事業会社さんなんかだと結構Chatwokが使われていることも多く、ビジネス向けのチャットアプリとして日本での認知はかなり高いと思います。

僕も、クライアントさんの状況に合わせ、ブラウザベースのチャットワークをメインにiOSアプリも併用しています。

唯一の不満:通知にメッセージ内容が表示されない

さてそんなチャットワークですが、便利に使わせていただいているものの、一つだけ不満がありましてそれがその通知機能。

チャットワークの通知機能は自分宛のメッセージがあった場合に通知してくれるというものなのですが、その通知内容が「メッセージが届きました」といったものだけで、メッセージの内容自体を表示してくれるわけではないので、通知が来る度にいちいちチャットワークを開かないとどういう内容かがわからないんです。

asset (1)

こんな感じで届く。フォーマットはこんな感じ⇒「トークルーム名:送信者さんからメッセージが届きました。」

これだと、チャットワーク本体を開くまで緊急度が高いメッセージなのかほっといてもいいメッセージ(「了解しました」だけとか)なのかがわからない。そこんとこちょっと不便だなーと思っておりました。

個人的に頻繁な通知もそんなに好きじゃない。

ただ一方で、個人的な観点でありますが、リアルタイムで来るポンポン飛んでくる通知自体もそんなに好きじゃないというのもあるんですよね。
これはそのツールの人それぞれの使い方もあると思うのですが、僕の場合はある作業中にいちいち通知が来ると集中力が削がれてしまう要因になるんです。

だから基本的に、情報は自分から取りに行きたいと考えました。プッシュ通知よりフェッチで取りたいと。

Chatworkのメッセージ内容をGmailに送付しよう

というわけで、自分の場合はですがチャットワークの通知がメッセージ内容込みでGmailに飛んでくればいいな、ということになりました。

Gmailであれば自分のタイミングで情報取りに行けますし、勝手に割り込んでくる通知に煩わされる心配もありません。僕の場合Gmailは割りと頻繁に見ているので、リアルタイムではないですがそれほどタイムラグなくメッセージも確認できますし、すぐ返信が必要かどうかもGmail上で確認できます。

もちろん、会話のようにリアルタイムにやり取りする必要がある場合はこの方法ではカバーできませんが、リアルタイムでやり取りする場合はそもそもChatworkに付きっきりで通知も必要ないと考え、想定から省いてます。

ソースコード

というわけでGAS用のソースコードはこちら。

 

Standaloneスクリプトです。上記をGmailを使っているアカウントでGoogle Apps Scriptのコード.jsにコピペしてnoticeChatworkMessageを10分ごとに実行させます。つまり10分ごとにメッセージをチェックします。

補足

上記で変更する必要があるのは、以下のあたりですね。

・チャットワークのAPIトークン
・トークルームID
 チャットワークで該当のトークルームを開き、URL末尾の「#!rid」の後の数値がそれになります。
・トークルーム名
 任意の名前を入れられます。
・個人ID
 ここは誰あてのメッセージがあった場合に通知するかを規定します。自分宛のメッセージを感知したい場合は自分の個人IDを入れます。
・個人名
 ここは、個人IDのチャットワーク上の名前を入れてください。

トークルームIDは一対一でのチャットにも設定されているので、グループでも一対一のやり取りでもメッセージ通知を送付できるよう設定できます。

Google Apps Scriptの実装方法と、Chatwork APIの利用方法は検索すればいくらでも出てくるのでここでは省きます。


 

実装方法や動きで疑問がありましたらお気軽にコメントくださいませ。時間ある時に対応します。

今回はGmail宛に送付するようにしていますが、送付部分を書き換えれば別のアプリ等に通知させることができるかと思います。

公式サイトのFilezilla(Mac版)から、マルウェアが検出された件。(追記アリ)

Pocket

結論から言うとFillezillaには何らかのマルウェアが含まれてるっぽいから使わない方が良さそうだよ!というお話です。

事の経緯を簡単な時系列で書いてみました。時間がある時にでもご一読ください。 続きを読む

【情報漏えい対策2016】やらかした!! クレジットカード不正利用被害に合う(前編)

Pocket

一部注意喚起としてFacebook等ではお伝えしていましたが、先月、個人で利用していたクレジットカードが不正利用されるという事件が発生いたしました。 続きを読む

MF855(充電機能付きSIM free Pocket wifi)とDMM mobileで最強のモバイル環境構築

Pocket

参考サイトはこちら)

SIMフリーで7800mAhと大容量な変態モバイルバッテリーWi-FiルーターMF855レビュー http://hamako9999.net/mf855/

続きを読む

ブログを書きたい、という人にWordPressとバズ部のXeoryをおすすめしない理由。

Pocket

僕はブログを書くにあたってWordpressを選んだ。

それは思惑として「ブログを書いて将来的に発信力を持ちたい」という下心があったのと、知り合いの知り合いがバズ部の記事を見てその通りにブログを書いたところ、アクセス数が数倍に伸びた、という話を聞いていたからだ。

なので、実際にバズ部のサイトを調べ、そこでおすすめされていたWordpressと、実際にバズ部が提供しているXeory(セオリー)というWordpressテンプレートを使ってこのブログを作った。

しかし、実際にWordpressおよびXeoryを使っていくつかブログ記事を書いてみた所感として、Wordpressというものと、Xeoryというもの両面からブログ単体を書いていくにはおすすめしない、ということを述べたいと思う。(あくまで一個人の意見です)

続きを読む

等身大の自分をつづる。

Pocket

友人がいつの間にか始めていたブログ(PUKAPUKA note)がとてもおもしろかった。

のと、ゆるい感じにとても好感が持てて「自分ももっと等身大で書いたほうが楽でいいな」と素直に思えたので、見習うことにした。

続きを読む

思っていることは言う、戦うべき時は戦う。その難しさと必要性。

Pocket

これは人生でもそうだし、リーダーや会社の代表なんかをやっていると特に必要になると思うんだけど、「思っていることは言う、戦うべき時は戦う。」というのは必ず身につけなければならない能力であると思う。

会社や事業をやっているとどうしてもトラブルや利益相反な関係が生まれたりする。
そういった場合に「嫌われないこと」「いい人でいること」を優先してしまいがちな人は多い。
日本人は自己主張が苦手だ。

僕も例外ではなく、むしろその傾向が強かった。嫌われることが昔から大の苦手で、今もまだ嫌われることには抵抗がある。
小学校の頃一時期いじめられた経験があるからか、肝心なところで一歩引く、ということが多かった。

意見をいうことは苦手ではなくむしろ得意なんだけど、条件交渉とかがとにかく苦手だった。
価格交渉とか。

けど、会社をやったり自分で事業をしたりして色々な交渉を重ねる中で、自分の主張を通すことの大切さ、きちんと伝えることの重要性を学んだ。

続きを読む

人と仲良くしておくと得だなぁ、という話。

Pocket

昨年11月から、早起きの習慣をつけようということで、朝清掃のアルバイトをしている。場所は、目黒のとあるオフィスビル。アルバイトといっても朝6時〜8時の2時間だけで日中の仕事には影響が出ないようにしている。平日は毎朝5時〜5時半には起きなければならないので、嫌でも早起きの習慣がついた。

といえば聞こえはいいのだが、早起きバイトを始めて3ヶ月経った今でも、毎朝起きるのだるいし、朝は早く起きることができても夜早く寝る習慣はなかなかつかないので、週中には体がつらくなってくる。ハッピーなことばかりではない。

ただ、当初の目論見通り、1日の稼働時間は伸びた。

まぁ早起きのメリット・デメリットの話はまたどこか別で話すとして、今日はそのアルバイト先で感じた、人と仲良くしておくと得だなぁ、という話。

続きを読む

ノンプログラマーによるWebpay実装メモ。

Pocket

さくらサーバーにて実装しました。

Webpay、実装カンタンだっていうしマニュアルもたくさんあるから大丈夫だろうとたかをくくっていたら、

完全につまづきました。これ、完全なる開発者向け(アプリとかWebサービス0から作るような人向け)なんですね・・・。

僕のスキルセットはHTML/CSS/Javascriptなので、PHPとかRubyとか本格的にやってないのでバックエンド詳しくはわからない。Wordpressとかはある程度できるけど。

なもんですごく苦労したんだけど、テストアカウントでひとまずなんとか一番シンプルな決済だけ導入出来たので備忘録的にメモ。

続きを読む

Google Apps Scriptを使いSpreadsheetsでカンタンに更新日時と起票日を自動入力する方法

Pocket

会社でよくGoogle docsやGoogle spreadsheetsを使って色んな人と仕事や情報を共有しながら仕事をするんだけど、プロジェクトのタスク一覧をスプレッドシートで作った際にタイムスタンプ(更新日時)と起票日が自動で記入されないのは常々不便だなと思っていた。

ということで、カンタンなものではあるがGoogle Apps Scriptを使って、タスクを追加した時に起票日と更新日時が、更新した時には更新日時のみが自動更新されるスクリプトを作った。

続きを読む