目次
この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
0.グループ情報のコントールには
グルーブ管理の権限が必要です。
EXCEL(VBA)から呼び出す方法は、過去記事を参照して下さい。
BoxのAPIを使って見よう。(その1)~概要と基礎情報
BoxのAPIを使って見よう。(その2)~実際にAPIでデータ取得
BoxのAPIを使って見よう。(その3)~VBAから呼び出す
BoxのAPIを使って見よう。(その4)~グループの関連情報を取得
1.その前に。
作成したVBAを動作させるとき「開発」画面を表示してイミディエイトに、リクエスト情報やレスポンス情報を表示させるのが面倒ですよね。
そのため、今回はひと手間として、テキストファイルでトレースログを取得してみます。
参考にさせて頂いたサイトは、こちらです。
エクスプローラーで表示した様子です。EXCELと同じ場所に出力します。
以下の要件を追加
・ファイルが無ければ、自動生成
⇒ 消してから確認しいって事ありますね?
・ファイルがロックされている場合は、エラーにしない。
⇒ エディタによっては開いた時にロックされてしまう場合があるので、その対策
ログ出力(プログラムサンプル)
Sub WLog(message As String)
On Error GoTo ErrorHandler
Dim LogPath As String
LogPath = ThisWorkbook.Path & "\box_sample.log"
Dim objFso As Object
Set objFso = CreateObject("Scripting.FileSystemObject")
If Dir(LogPath) = "" Then
objFso.CreateTextFile (LogPath)
End If
With objFso.OpenTextFile(LogPath, ForAppending)
.WriteLine Now & vbTab & message
.Close
End With
Set objFso = Nothing
ErrorHandler:
End Sub
BOXのレスポンスJSONをログに出力するときの、ひと手間
いままでの記事でも紹介にさせて頂いて居る VBA-JSONを使用してログを整形して出力してみます。
Private Sub ResponseJSONLog(ByVal resJson As Variant)
TraceLog.WLog "response JSON" + vbNewLine + JsonConverter.ConvertToJson(resJson, Whitespace:=4)
End Sub
上記の様な関数を用意しておいて、ログに出力してみます。
以下はメモ帳で表示して見たときです。
2. 【本題】BOXでグループを操作
今回は以下のようなインターフェース画面を作成し簡単に管理できるような仕組みを構築してみます。
・グループ情報を取得して一覧表示
・新規にグループを追加
・既存グループに対して変更・削除
■初期画面
■グループ一覧を取得してみよう。
■グループ一覧を取得し実際に変更を加えてみよう。
今回使用するBOX APIは
・Create Group
・Update Group
・Delete Group
・Get Enterprise Groups
Create Group
グループを新規に登録するAPI。※グループを管理する権限が必要です。
■接続方法(基本)
curl https://api.box.com/2.0/groups \
-H "Authorization: Bearer ACCESS_TOKEN" \
-d '{"name": "section-mmaster", "description": "section 2 group", "member_viewability_level": "admins_only"}' \
-X POST
■パラメタ内容
■レスポンス
グループ情報が復帰します。
※fields に、必要なパラメタを指定しないと含まれません。
※同じグループ名が既に存在すると、、HTTP status codes が 409
conflict となります。
Update Group
グループを更新するAPI。※グループを管理する権限が必要です。
■接続方法(基本)
curl https://api.box.com/2.0/groups/GROUP_ID \
-H "Authorization: Bearer ACCESS_TOKEN" \
-d '{"name": "section-master"}' \
-X PUT
■パラメタ内容
■レスポンス
グループ情報が復帰します。
※fields に、必要なパラメタを指定しないと含まれません。
※同じグループ名が既に存在すると、、HTTP status codes が 409
conflict となります。
Delete Group
グループを削除するAPI。※グループを管理する権限が必要です。
■接続方法(基本)
curl https://api.box.com/2.0/groups/GROUP_ID \
-H "Authorization: Bearer ACCESS_TOKEN" \
-X DELETE
■パラメタ内容
■レスポンス
正常にDELETEされた場合には、HTTP status codes が 204
no_content となります。
Get Enterprise Groups
企業のすべてのグループを取得するAPI。※グループを管理する権限が必要です。
前回の記事 を参考にしてください。
3.サンプル
サンプルを作ってみましたので、試したい方はご自由にどうぞ。
サンプルEXCELをダウンロード
※VBAのコードは、現時点では非公開
です。
※操作可能なグループ数は25
に制限されています。
4.まとめ
次回は
グループにユーザとフォルダを追加・更新・削除する機能を作ってみたいと思います。
※アピリッツではBoxの販売パートナーもしてるようです。
お問い合わせは、こちら へ