あなたのアプリを承認したユーザーはそのアプリをデバイスごとに「インストール」することができます。
あなたのアプリに設定項目がある場合、ユーザーはインストール時に設定することになります。
例えば「アカウント内のどれかのobnizがオフラインになったらSlackに通知する」というホステッドアプリだった場合、ユーザーはまずアプリを承認し、obnizID XXXX-XXXというデバイスにインストールし、次にYYYY-YYYという別のデバイスにインストールすると合計2つインストールしたことになります。
アプリ Tokenでのインストール情報の取得
インストールされたアプリの情報はそれぞれのユーザーごとのOAuthトークンではなく、アプリトークンのみを用いて取得することができます。
データベースレスなWEBサービスの開発
このインストールを用いることで、データベースでのユーザーごとのOAuthや設定情報の管理を自分のサーバーで行わずobnizクラウドに任せることができます。
あなたのアプリを使っている全てのユーザーが自由に設定しインストールした情報を一括で取得し、あなたのアプリを動かすことができます。これにより以下のような流れを持つアプリの作成が可能です。
- サーバーでプログラム起動時にアプリTokenを用いてobnizクラウドからAPIでインストールを取得
- インストール情報ごとにアプリを動作させる
- ユーザーのインストール・アンインストールに応じたwebhookにより動的にアプリを追加・削除
- サーバーマシンが足りない場合はスケールアウトを行い逆に多い場合は減らす
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系でなかった場合でもリトライは行いません。