1
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 5 years have passed since last update.

HipChatにGASから定刻通知をさせてみる<もくもく会><時間内逐次更新>

Last updated at Posted at 2017-04-21

株式会社オズビジョン@terra_yuccoです。

本日は弊社のもくもく会で進めていた内容を自分なりに覚え書きしながら、共有していこうと思います。

背景

オズビジョンではコミュニケーションツールのメインはチャットになっています。Slack派とHipChat派がありますが、全社のスタンダードは今のところHipChatです。
普通のやりとりをするほか、定期イベントの通知や積み残しの課題数なども流していますが、ここに課題あり。

定刻通知用のある程度汎用的なスクリプトはあるのですが:

  • HipChatのAPI v1を利用している
  • EC2内のBashスクリプト+Cronの仕組みのため、追加削除が大変

という欠点がありました。
なので今日は、API v2を使いつつ、Google Apps Scriptを利用し、Google Spreadsheetに書くだけで、誰でも定刻通知を仕込めるように、というのをもくもく会の時間でやろうと思います。

作業記録

まずv2用のtokenを取得

http://qiita.com/takky/items/51f8b2942437c9897ee1
メッセージを送りたいので、Send Notification を選びます。
image
Expireがついた。
image

v2APIの使い方を調べる

はまりメモ

  • とりあえずまずPOSTしないといけない
  • tokenはbearerに入れないとダメぽい
  • とりあえず Advanced Rest Clientを使ってここまででメッセージが投げられた

image

image

どうでもいいメモ

  • v2だと個人にtokenが紐づくので差出人が自分になる…w

GASからPOST

POSTしたい。あと、ヘッダも独自につけないといけない

意外とあっさりできたコード (tokenは伏せる)

  • 日本語送信できるかまだ確認していない
code.gs
/**
 * HipChatに送信する
 * API v2
 */
function noticeHipChat(roomid, color, message, notify)
{
  // token
  token = 'dummydummy';
  // url
  var url = 'https://api.hipchat.com/v2/room/' + roomid + '/notification';

  // POSTデータ
  var payload = {
    "color" : color,
    "message" : message,
    "notify" : notify,
    "message_format" : "text",
  }
  // 認証ヘッダ設定
  var headers = {
    "Authorization" : "Bearer " + token,
  }
  // option
  var options = {
    "method" : "POST",
    "payload" : payload,
    "headers" : headers,
  }

  // POST通信
  UrlFetchApp.fetch(url, options);
}
1
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
1
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?