Box Developer Blog
Published in

Box Developer Blog

Box Platformのさらなる利用方法

撮影: Susan Holt Simpson (Unsplash)

Webhookを使用すると、Boxコンテンツでイベントを監視し、アプリケーションに情報を返すことができます。これにより、多くのユースケースが新たに利用できるようになり、Box Platformで何が行われているかをアプリで認識する必要がある場合の十分な補完機能になります。

Box Platformの使用のサンプルアプリを補完します。以下のデモアプリは、こちらのGitHubリポジトリにあります。

最初のデモでは、ダイブマスターがダイビング証明書、保険証、同意書への署名を確認するためのタスクを作成しました。これはBoxウェブアプリ内で行われますが、ダイブマスターがこれらのドキュメントを承認または拒否したときにアプリで反応を得たいと考えています。

Webhookを使用してみましょう。

Box PlatformのWebhook

オブジェクト (通常はファイルまたはフォルダ) にWebhookを作成し、特定のトリガー (FILE.UPLOADCOMMENT.CREATEなど) をリッスンできます。一覧については、こちらを確認してください。

イベントがトリガーされると、Box Platformは、指定されたURLにイベントペイロードを送信します

Webhookの作成

別の便利なツールの動作を紹介するために、ここでは、Box CLIを使用してWebhookを作成します。これまでにCLIを使用したことがない場合は、Box CLIの使い方のクイックスタートを確認するようにしてください。

すべてのコンテンツは、bookingsフォルダに保存され、ダイブサイト、日付、ダイバー別に分類されます。

ここでは、タスク割り当ての更新を監視したいと考えています。つまり、ダイブマスターがドキュメントを承認または拒否するたびにその変更がアプリに通知されるようにします。

また、署名リクエストの変更 (例: 完了、拒否済みなど) も追跡します。

これを実現するには、bookingsフォルダにWebhookを作成します。これにより、このフォルダの下のすべてのコンテンツが追跡され、以下のトリガーがリッスンされます。

リクエストの信頼性の検証

Webhookのリクエストを受け取る際にアプリで最初に行う必要があるのは、リクエストの信頼性の検証です。

リクエストを処理する新しいエントリポイントをアプリに作成します。

リクエスト本文、ヘッダー、webhook_idを作成したら、組み込まれているメソッドを使用して署名を確認することができます。

validate_messageメソッドは、2つのキーを使用して署名を確認し、いずれかのキーが有効な場合にtrueを返します。これにより、必要なときに1つのキーをローテーションできるようになります。

これらのキーの設定は、Box開発者コンソールの当該アプリケーションの [Webhook] ページで行われます。

リクエストの処理

有効なリクエストを取得したら、それを処理できます。次に、routes.pyの2つ目の部分を示します。

各トリガーのペイロードは若干異なります。この例では、イベントのステータスを取得し、特定のドキュメントについてデータベースを更新するだけです。

アプリの更新

アプリで各ドキュメントの更新されたステータスを取得したら、ユーザーに対する視覚的なキューを実装できます。最終的な結果は以下のとおりです。

デモ

--

--

News and stories for working with the Box APIs

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store