ホステッドアプリ: インストール

あなたのアプリを承認したユーザーはそのアプリをデバイスごとに「インストール」することができます。
あなたのアプリに設定項目がある場合、ユーザーはインストール時に設定することになります。
例えば「アカウント内のどれかのobnizがオフラインになったらSlackに通知する」というホステッドアプリだった場合、ユーザーはまずアプリを承認し、obnizID XXXX-XXXというデバイスにインストールし、次にYYYY-YYYという別のデバイスにインストールすると合計2つインストールしたことになります。

アプリ Tokenでのインストール情報の取得

インストールされたアプリの情報はそれぞれのユーザーごとのOAuthトークンではなく、アプリトークンのみを用いて取得することができます。

データベースレスなWEBサービスの開発

このインストールを用いることで、データベースでのユーザーごとのOAuthや設定情報の管理を自分のサーバーで行わずobnizクラウドに任せることができます。

あなたのアプリを使っている全てのユーザーが自由に設定しインストールした情報を一括で取得し、あなたのアプリを動かすことができます。これにより以下のような流れを持つアプリの作成が可能です。

  1. サーバーでプログラム起動時にアプリTokenを用いてobnizクラウドからAPIでインストールを取得
  2. インストール情報ごとにアプリを動作させる
  3. ユーザーのインストール・アンインストールに応じたwebhookにより動的にアプリを追加・削除
  4. サーバーマシンが足りない場合はスケールアウトを行い逆に多い場合は減らす

Webhook

ユーザーのあなたのアプリへの操作をWebhookで知ることができます。

設定

アプリの設定画面にてwebhookという項目があります、この部分にwebhookを受け取りたいurlを記入して下さい。webhookはpostメソッドで行われます。

タイミング

webhookはPOSTメソッドでbodyはjsonで以下のようなフォーマットとなります。

{
  type: 'install.create'
}
  • type: このwebhookが何をきっかけに行われたかのキーです
  • data: typeに基づくデータです。

typeは以下のいずれかとなります

  • oauth.create
    ユーザーがあなたのAppを承認しました
  • oauth.delete
    ユーザーがあなたのAppの承認を削除しました
  • install.create
    ユーザーがあなたのAppをインストールしました
  • install.update
    ユーザーがあなたのAppの設定を変更しました。
  • install.delete
    ユーザーがあなたのAppをアンインストールしました。

リトライについて

Webhookへのレスポンスが200系でなかった場合でもリトライは行いません。