目次

目次

boxのアップロード/ダウンロードイベント発生時にWebhookを飛ばす

松木佑徒
松木佑徒
最終更新日2017/10/31 投稿日2017/10/31

クラウドストレージサービスのboxを触ってみました。

SaaSの良いところは自分でAPIを使って拡張できるところだと思いますが、 例えばboxもWebhookを使ってイベント発生時に通知を行うことができます。

フォルダのイベントにWebhookを登録するにはBOXアプリケーションを作成する必要があります。 BOXアプリケーションには以下の2種類があり役割が違います。

  • BOX統合
    • boxの認証を使用してユーザが自分の権限でファイルを操作したりするアプリケーションを作成する。
    • 原則、OAuthを利用したWeb画面の認証を用いる(アプリ開発者向けにトークンの発行も可能)
  • BOX PLATFORM
    • OAuthと別にアプリ用のユーザを作成してJWT認証も可能
    • アプリのユーザがboxと連携するのでユーザにboxのアカウントを意識させない(ことも可能)

ちょっと分かりづらいかもしれませんが「BOX統合」はBOXの機能を拡張するアプリケーションで、 「BOX PLATFORM」はBOXをバックエンドとしたアプリケーションというイメージです。

今回は認証をアプリ用のユーザで行いたかったので「BOX PLATFORM」でアプリを構築します。

boxにサインアップ

まず自分のメールアドレスで「開発者」アカウントを作成します。 (*通常のサインアップと入り口が違うので注意!)

アプリケーションの作成

  1. 開発者コンソールからアプリを作成
  • https://app.box.com/developers/console 「MyApps」 -> 「アプリの新規作成」 -> 「カスタムアプリ」で「次へ」 「JWTを使用したOAuth2.0」認証を選択。アプリの名前を適当に入力します。 以下のコマンドが出てくるので試してみます。自分が見れるフォルダの一覧が出てきたら動作検証OKです。
    curl https://api.box.com/2.0/folders/0 -H "Authorization: Bearer <Developerトークン>"
    

作成したアプリケーションの登録

  1. 2段階認証の設定 アプリケーションからの認証に必要な「公開キー」を登録するには2段階認証の設定が必須です。 ユーザの設定から2段階認証の設定をします。
  2. 公開キーの作成 以下のコマンドで生成します。パスワードも設定しましょう。

    openssl genrsa -aes256 -out private_key.pem 2048
    openssl rsa -pubout -in private_key.pem -out public_key.pem
    
  3. DeveloperConsoleで公開キーの設定 https://app.box.com/developers/console/app//configuration DeveloperConsoleに生成した公開キー(上のコマンドではpublic_key.pemで生成された方)を登録します。 アプリケーションの設定「公開キーの追加と管理」の「公開キーを追加」から中身をコピペで追加します。 公開キーを追加するとIDが自動で振られます。あとで使うのでとっておいてください。
  4. 管理コンソールでアプリケーションを承認 https://app.box.com/master/settings/openbox 「管理コンソール」 > 「Business設定」 > 「アプリ」 > 「新しいアプリケーションを承認」を選択 「APIキー」を入力するように言われるのでわかりづらいですが「クライアントID」を入れればOKです。

AppUserの作成

ここからはコードを書きます。PythonのSDKに不具合があり使えなかったのでnode.jsでやります。 box-node-sdkを使用します。 まず、SDKに認証情報を渡して初期化します。

松木佑徒

目次