AtlasCamp 2015 で Atlassian Connect for HipChat に取り組んでいることを発表しました。最近、サンフランシスコで開催されたハッカソンの中で、New Relic、PagerDuty、StatusPage.io、Tempo、Wittified、Meekan、Notify、Zendesk などの優れた企業の 25 人の開発者にアーリーアクセス版を提供したのですが、その結果は素晴らしいものでした!
現在、この API は非公開のアルファ版ですが、ベータ版公開まであとわずか数週間となりました。公開までに準備を整えていただくため、Atlassian Summit 2015 で開発者トレーニングを提供します。
どのようなものを簡単に作れるのか、こちらの SupportKit のデモをご覧ください:
HipChat Connect とは?
HipChat Connect は、HipChat アプリを拡張するアドオンの開発を可能にする HipChat の次世代 API です。JIRA、Confluence、Bitbucket 向けのアドオン開発にすでに使用している Atlassian Connect と同じフレームワークを基盤としています。あらゆる言語で HipChat アドオンを開発でき、あらゆるプラットフォームでの動作が可能です。開発するアドオンに必要となるのはオープン Web プロトコル (HTTPS、REST、OAuth、JWT) を使って Hipchat とやり取りさせることだけです。
API のコンポーネントを以下に挙げます:
HipChat Cards
JSON データを REST エンドポイント送信する POST を実行することで、アプリは HipChat へ Card を送信できます。HipChat はそれをHipChat ルームで Card として表示し、ユーザーがその Card を表示するデバイスに対してその Card のレンダリングを最適化します:

HipChat Actions
HipChat アプリの様々なところに Action を追加できます。現在、対応しているのは入力アクションとメッセージアクションです。Action で可能なのは、サイドバー/モーダルダイアログ View のオープン、または、他アプリケーションへユーザーのリダイレクトです。


HipChat Glances
Glance は HipChat メインサイドバーに追加できます。通知は Chat ルーム内を出入りできますが、Glance は固定でその Chat ルームのコンテキストでは常にサイドバーに表示されます。Glance を使えばすぐに見てもらう必要がある情報を表示できます: 3 件のオープンインシデントがあります、この 30 分間で Twitter 上で製品が 30 回言及されました、など。Glance をクリックすればサイドバー View をオープンできます。

HipChat Views
アプリは特定位置に View (HTML/JS/CSS) を追加することで HipChat のユーザーインターフェイスを拡張できます。現時点では HipChat の右側サイドバーかモーダルダイアログに追加できます。HipChat はコンテナを作成してアプリからコンテンツを読み込みます。
View では、アプリの UI は HipChat JavaScript API を使って HipChat App とやり取りできます。例えば、Chat ルームの作成/オープン、1 対 1 のチャット、入力フィールドへのデータ追加などが可能です。


以上が HipChat Connect の基本的な構築ブロックです。ここからは、この構築ブロックを使ってパワフルな統合を実現する方法を説明していきます。
HipChat Connect を使って没入型ユーザーエクスペリエンスを実現
HipChat Connect を使って HipChat と統合をお考えのアプリがありますか? 以下で解決可能な問題点をいくつか挙げていきます:
SN 比を改良
問題点: アプリがすでに HipChat と統合されている場合、アプリが HipChat ルームに送る通知のおかげでチームは重要な事象に関して最新情報を入手できます。しかし、この通知はときどきスパムのようなものに感じられることがあります。
解決策: HipChat Connect を使って SN 比を改良できるようになりました。アプリは HipChat Glance を追加してユーザーの注意を引く必要がある情報があればユーザーに知らせることができ、HipChat サイドバービューで詳細情報を表示できます。何か緊急通知があれば、アプリはメインのチャットビューで Card として通知を送信することもできます。

会話に関連性の高い情報を提供
問題点: ユーザーは HipChat ルームで多数のリンクを共有します。例えば YouTube の公開リンクなど、場合によっては HipChat は自動的にリンクを変化させて詳細情報 (例. 動画サムネイル) を表示できます。しかし、認証を求めるアプリやファイアーウォールの保護環境下でデプロイされたアプリからユーザーがリンクを共有する場合は、それが不可能です。
解決策: 正規表現パターン (URL、課題キー) に一致するように HipChat ルームでデータを受信する Webhook をアプリに実装することができます。アプリは Chat ルームに HipChat Card を表示してリンク先のリソースに関する詳細情報を提供できるようになります。

さらに、Card はリンク/アクションを表示でき、HipChat サイドバーでリンク先リソースの最新ビューをオープンできます。これは一刻を争う重要な事柄を話し合っているユーザーにとても便利な機能です。

意思決定を行動につなぐ
問題点: HipChat はユーザーの意思決定の場です。しかし、行動する場はどこでしょうか? 現在、ユーザーは行動するためには複数アプリを切り替え行ったり来たりを繰り返し、適切なコンテキストへと移動する必要があります。
解決策: アプリは Card に HipChat Action を追加し、HipChat サイドバーかモーダルダイアログで View をオープンするか、ユーザーを適切なコンテキストでアプリにリダイレクトできます。
チャット内で充実のコンテンツを作成: さよなら、スラッシュコマンド!
問題点: HipChat で集計を取ろうとする場合、ボットかスラッシュコマンドを使って実行することになります。両方とも発見しづらく、あまり直観的な使用感ではありません。
解決策: ユーザーインターフェイス… 簡単!


他のアプリへアクションを提供
問題点: ユーザーにインシデントをエスカレートさせるアプリがあるとします。そして、そのカスタマーのほとんどが New Relic を使ってインシデントに関する通知を HipChat へ送信しているとします。現在、インシデントをエスカレートするには、ユーザーはアプリへ進み New Relic のデータをコピー&ペーストする必要があります。
解決策: アプリはHipChat Action を他のアプリに提供することができます。例えば、New Relic のインシデント Card に「インシデントをエスカレートする」アクションを追加できます。とてもパワフルな機能です。

興味を持っていただけましたか? 早速試してみてください!
API ドキュメントは、「Extending the HipChat apps」にあります。API コンポーネントについて、そして、それぞれの API コンポーネントがどのように関連し合うのかについて情報を得ることができます。あと数週間はこの API は非公開アルファ版のままですが、ご関心があれば integrations@hipchat.com までメールをお寄せください。公開ベータ版リリース後すぐに使用説明書をお送りします。必ず何を開発したいと考えていらっしゃるのかお書き添えください!
また、この API を使い始め、API コンポーネントのほぼすべてを使って HipChat のアドオンを作成できるように Atlassian Summit 2015 で開発者トレーニングも開催いたします。API 開発者から直接学ぶことができるチャンスです。
*本ブログは Atlassian Developers の翻訳です。本文中の日時などは投稿当時のものですのでご了承ください。
*原文 : 2015 年 10 月 13 日投稿 "Announcing HipChat Connect beta – Chat will never be the same again!"