Box コネクタ

Select

Box は企業向けのオンラインファイル共有およびコンテンツ管理サービスです。 Box 用 Anypoint コネクタは、Box とサードパーティの CRM、CMS、モバイル、およびソーシャルアプリケーションとの間のデータの同期とプロセスの自動化を提供する RAML ベースのコネクタです。

前提条件

このドキュメントは、読者が Box 2.0 API、Mule、Anypoint コネクタ、Anypoint Studio、Mule の概念、Mule フローの要素、グローバル要素に精通していることを前提としています。

このコネクタを使用するには、以下が必要です。

  • 開発者アカウントまたは他の有効な Box インスタンス。

  • MuleSoft Enterprise ライセンス

ハードウェアとソフトウェアの要件および互換性に関する情報は、「コネクタリリースノート」を参照してください。

このコネクタの新機能

このバージョンのコネクタでは、Mule 3.x のサポートが終了し、Mule 4.x のサポートが追加されます。

これは RAML ベースのコネクタであり、REST コールを使用して Box 2.0 API のみとやりとりし、Box 2.0 API で使用可能なサービスのサブセットのみをサポートします。

サポートされている操作

以下のリストは、Box コネクタでサポートされるカテゴリでグループ化したサポートされる操作を示しています。

カテゴリ サポートされている操作

Collaborations (コラボレーション)

  • Create Collaboration

  • Delete Collaboration

  • Get Collaboration

  • Get Pending Collaborations

  • Update collaboration

Comments (コメント)

  • Create Comment

  • Delete Comment

  • Get Comment

  • Update Comment

Files A (ファイル A)

* Copy File * Delete File * Get File * Get File Comments * Get File Content * Get File Tasks * Get File Thumbnail * Update File Info

File Versions A (ファイルバーション A)

* Delete File Version * Get File Versions * Promote File Version

Folders A (フォルダ A)

* Copy Folder * Create Folder * Delete Folder * Get Folder * Get Folder Collaborations * Get Folder Items * Update Folder

Groups A (グループ A)

* Create Group * Create Group Membership * Delete Group * Delete Group Membership * Get Enterprise Groups * Get Group * Get Group Membership * Get Group Memberships * Get User Group Membership * Update Group Membership

Search (検索)

  • Search

Tasks (タスク)

  • Create Task

  • Create Task Assignment

  • Delete Task

  • Delete Task Assignment

  • Get Task

  • Get Task Assignment

  • Get Task Assignments

  • Update Task

  • Update Task Assignment

Trash A (ゴミ箱 A)

* Delete Trashed File * Delete Trashed Folder * Get Trashed File * Get Trashed Folder * Get Trashed Items * Restore Trashed File * Restore Trashed Folder

Users (ユーザ)

  • Create User

  • Delete User

  • Get Enterprise Users

  • Get User

  • Update User

  • Update User Folder

Design Center での接続方法

  1. In Design Center, click a trigger such as HTTP Listener or Scheduler.

  2. [Reusable Configurations (再利用可能な設定)] リンクのすぐ後にあるプラス記号をクリックします。Box コネクタのグローバル要素を使用するには、[Reusable Configurations (再利用可能な設定)] から mule-box-connector を選択します。

    設定セレクタ
  3. 上の画面で [Create Configuration (設定を作成)] をクリックします。

    認証コード許可種別を使用する OAUTH 2.0 の次の設定画面が表示されます。これは、Box コネクタでサポートされる唯一の設定です。設定画面は 3 つの画面に分割され、設定のすべてのプロパティが表示されます。各プロパティについては画面の後で説明します。

    基本設定 1
    基本設定 2
    基本設定 3
    • Configuration Name (設定名): Box コネクタのグローバル要素の設定名。

    • Host (ホスト): Box がその API を公開しているホスト。

    • Port (ポート): Box サービスが着信要求をリスンしているポート。

    • Base Path (ベースパス): Box サービスのベース URI のベースパス。

    • Protocol (プロトコル): Box サービスが従うプロトコル。

    • Client Id (クライアント ID): クライアントアプリケーションの登録時に認証サーバにより割り当てられたクライアント識別子。

    • Client Secret (クライアントシークレット): クライアントアプリケーションのクライアントシークレット。

    • Local Callback Path (ローカルコールバックパス): ローカルコールバックパス。

    • Local Callback Config (ローカルコールバック設定): ローカル認証 URL の設定で使用する HTTP リスナの設定。

    • External Callback Url (外部コールバック URL): クライアントアプリケーション内で設定されるリダイレクト URL。

    • Local Authorization Url (ローカル認証 URL): OAuth2 ダンスの開始で使用するローカル認証 URL。

    • Authorization Url (認証 URL): 認証コードを要求するための認証 URL。

    • Access Token Url (アクセストークン URL): アクセストークンを要求するためのアクセストークン URL。

  4. フロー内のプラス記号を選択して、コンポーネントを追加します。

  5. コンポーネントのリストから mule-box-connector を選択し、Box コネクタを取得します。

    コネクタ選択
  6. 操作を選択します。例: Get Folder

  7. 以前作成した box-connector-config 設定を選択します。さらに、次の項目を設定します。

    Get folder 操作の設定
    • Fields (項目): 応答に含める項目の特定のカンマ区切りリスト。省略可能です。

    • Folder Id (フォルダ ID): 情報取得の対象であるフォルダの ID。必須です。

Anypoint Studio 7 で接続する方法

このコネクタを Anypoint Studio で使用するには、まず Exchange からダウンロードして必要に応じて設定します。

Studio にコネクタをインストールする方法

  1. Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。

  2. Anypoint Exchange で [Login (ログイン)] をクリックします。

  3. Box コネクタを検索して [Install (インストール)] をクリックします。

  4. 画面の指示に従ってコネクタをインストールします。

Studio の更新がある場合、右下隅にメッセージが表示されます。メッセージをクリックすると、更新をインストールできます。

Studio に設定する方法

  1. Anypoint Studio で Mule プロジェクトを開きます。

  2. コネクタを連動関係として pom.xml ファイルに追加します。

    <dependency>
        <groupId>com.mulesoft.connectors</groupId>
        <artifactId>mule-box-connector</artifactId>
        <version>4.0.0</version>
        <classifier>mule-plugin</classifier>
    </dependency>

Box コネクタのグローバル要素の設定方法

Mule アプリケーションで Box コネクタを使用するには、アプリケーションで必要とされる数の Box コネクタで使用可能なグローバル Box 設定要素を設定します。

  1. キャンバスの下部にある [Global Elements (グローバル要素)] タブをクリックします。

  2. [Global Configuration Elements (グローバル設定要素)] 画面で、[Create (作成)] をクリックします。

    [Global Element Configuration (グローバル要素設定)] ウィザード
  3. [Choose Global Type (グローバル種別の選択)] ウィザードで [Connector Configuration (コネクタ設定)] を展開し、[Mule-box-connector Config (Mule-box-connector 設定)] を選択して [OK] をクリックします。 認証コード許可種別を使用する OAUTH 2.0 の設定画面が表示されます。これは、Box コネクタでサポートされる唯一の設定です。

    [Global Element Properties (グローバル要素のプロパティ)]
  4. 上の画像に従ってプロパティを設定します。次の表で、各プロパティについて説明します。

    パラメータ 説明

    clientId

    クライアントアプリケーションの登録時に認証サーバにより割り当てられたクライアント識別子。

    clientSecret

    クライアントアプリケーションのクライアントシークレット。

    host

    Box がその API を公開しているホスト。

    port

    Box サービスが着信要求をリスンしているポート。デフォルト: 443

    basePath

    Box サービスのベース URI のベースパス。

    protocol

    Box サービスが従うプロトコル。デフォルト: HTTPS

    localCallbackPath

    ローカルコールバックパス。デフォルト: /callback

    localCallbackConfig

    ローカル認証 URL の設定で使用する HTTP リスナの設定。

    externalCallbackUrl

    クライアントアプリケーション内で設定されるリダイレクト URL。

    localAuthorizationUrl

    OAuth2 ダンスの開始で使用するローカル認証 URL。

    authorizationUrl

    認証コードを要求するための認証 URL。

    accessTokenUrl

    アクセストークンを要求するためのアクセストークン URL。

    上の OAUTH 2.0 設定画面のプレースホルダ値は、プロジェクトの src/main/resources フォルダに配置されている設定ファイル mule-artifact.properties を参照します。

    ログイン情報をグローバル設定プロパティに入力するか、それらの値を含む設定ファイルを参照することができます。メンテナンスをシンプルにして、プロジェクトを再利用できるようにするために、設定ファイルを使用することをお勧めします。これらの値を別個のファイルに保存しておくと、アクセスログイン情報が異なるさまざまな環境 (本番、開発、QA など) にデプロイする必要がある場合に便利です。

  5. [OK] をクリックして、グローバルコネクタ設定を保存します。

ユースケース: Create Folder、Retrieve Folder、Delete Folder

Create Folder、Retrieve Folder、Delete Folder 操作を示すユースケース。

フォルダの作成、取得、削除のフロー
  1. Anypoint Studio で新しい Mule プロジェクトを作成します。

  2. Box のログイン情報を保持する以下のプロパティを mule-artifact.properties ファイルに追加し、ファイルをプロジェクトの src/main/resources ディレクトリに配置します。

    config.clientId=<Client ID>
    config.clientSecret=<Client Secret>
  3. 新しい HTTP グローバル要素を追加して、HTTP リスナを設定します。[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号をクリックします。

  4. 以下の表に従ってグローバル要素を設定します。

    パラメータ

    Name (名前)

    HTTP_Listener_config

    Protocol (プロトコル)

    HTTP

    Host (ホスト)

    localhost

    Port (ポート)

    8081

  5. [HTTP Listener (HTTP リスナ)] をキャンバスにドラッグし、次のパラメータを設定します。

    パラメータ

    Display Name (表示名)

    HTTP Listener (HTTP リスナ)

    Connector configuration (コネクタ設定)

    以前作成した HTTP リスナ設定を選択します。

    Path (パス)

    /boxdemo

  6. ここで、DataWeave コンポーネントを使用して作成するフォルダのフォルダプロパティを設定します。[DataWeave] コンポーネントを [HTTP Listener (HTTP リスナ)] の横にドラッグし、次のスクリプトを使用します。

    %dw 2.0
    output application/json
    ---
    {
    	parent: {
    		id: 0
    	},
    	"type": "folder",
    	name: "SampleFolder"
    }
  7. Box コネクタの Create folder 操作を、フォルダを作成する DataWeave コンポーネントの横にドラッグします。

  8. 新しい Box グローバル要素を追加して、Box コネクタを設定します。[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号をクリックします。

  9. 以下の表に従ってグローバル要素を設定します。

    パラメータ コメント

    clientId

    ${config.clientId}

    クライアントアプリケーションの登録時に認証サーバにより割り当てられたクライアント識別子。

    clientSecret

    ${config.clientSecret}

    クライアントアプリケーションのクライアントシークレット。

    host

    api.box.com

    これはデフォルト値です。そのままにしてください。

    port

    443

    これはデフォルト値です。そのままにしてください。

    basePath

    /2.0

    これはデフォルト値です。そのままにしてください。

    protocol

    HTTPS

    これはデフォルト値です。そのままにしてください。

    localCallbackPath

    /callback

    これはデフォルト値です。そのままにしてください。

    localCallbackConfig

    HTTP_Listener_config

    以前作成した HTTP リスナ設定を選択します。

    externalCallbackUrl

    http://localhost:8081/callback

    クライアントアプリケーション内で設定されるリダイレクト URL を指定します。

    localAuthorizationUrl

    http://localhost:8081/authorize

    OAUTH2 ダンスを開始するには、Mule アプリケーションをデプロイした後、この URL を入力する必要があります。

    authorizationUrl

    https://account.box.com/api/oauth2/authorize

    認証コードを要求するための認証 URL。

    accessTokenUrl

    https://api.box.com/oauth2/token

    アクセストークンを要求するためのアクセストークン URL。

    対応する XML 設定は次のようになります。

    <mule-box-connector:config name="Mule_box_connector_Config"
     doc:name="Mule-box-connector Config"
     property_clientId="#{config.clientId}"
     property_clientSecret="#{config.clientSecret}"
     property_localCallbackConfig="HTTP_Listener_config"
     property_externalCallbackUrl="http://localhost:8081/callback" />
  10. Box コネクタのプロパティエディタに戻り、Create folder 操作に必要な次のパラメータを設定します。

    パラメータ

    Display Name (表示名)

    Create folder (フォルダの作成)

    Basic Settings (基本設定)

    Connector configuration (コネクタ設定)

    作成したグローバル Box コネクタ要素を選択します。

    General (一般)

    Create folder request data (Create folder 要求データ)

    #[payload]

  11. 新しく作成したフォルダ ID を記録するロガーコンポーネントをドラッグし、次のプロパティを設定します。

    パラメータ

    Display Name (表示名)

    作成したフォルダ ID を記録するロガー

    Generic (汎用)

    Message (メッセージ)

    次の ID で作成されたフォルダ : #[payload.id]

  12. Box コネクタの Get folder 操作を、フォルダ情報を取得するロガーコンポーネントの横にドラッグし、次のプロパティを設定します。

    パラメータ

    Display Name (表示名)

    Get folder (フォルダの取得)

    Basic Settings (基本設定)

    Connector configuration (コネクタ設定)

    作成したグローバル Box コネクタ要素を選択します。

    General (一般)

    Folder id (フォルダ ID)

    #[payload.id]

  13. 取得したフォルダ情報を記録するロガーコンポーネントをドラッグし、次のプロパティを設定します。

    パラメータ

    Display Name (表示名)

    取得したフォルダ情報を記録するロガー

    Generic (汎用)

    Message (メッセージ)

    #[payload]

  14. 作成したフォルダを削除する Box コネクタの Delete folder 操作をドラッグし、次のプロパティを設定します。

    パラメータ

    Display Name (表示名)

    Delete folder (フォルダの削除)

    Basic Settings (基本設定)

    Connector configuration (コネクタ設定)

    作成したグローバル Box コネクタ要素を選択します。

    General (一般)

    Folder id (フォルダ ID)

    #[payload.id]

  15. 最後に、ユーザにフローの結果を表示するためのペイロードを設定する DataWeave コンポーネントをドラッグし、以下のスクリプトを使用します。

    %dw 2.0
    output application/json
    ---
    {
    	result : "Folder got created, retrieved and deleted successfully"
    }
  16. プロジェクトを保存し、Mule アプリケーションとして実行します。

  17. OAUTH2 ダンスを開始するためのグローバル Box 設定要素の localAuthorizationUrl に指定した URL http://localhost:8081/authorize をブラウザから入力します。

    これにより次のページが表示されます。ここで、Box ユーザは、Box に保存されたすべてのファイルとフォルダの読み取りおよび書き込みアクセス権をクライアントアプリケーションに付与するか却下するかを求められます。

    Box OAuth 2 ダンス
  18. [Grant access to Box (Box へのアクセス権を付与)] をクリックして、読み取りおよび書き込み権限を付与します。

  19. Web ブラウザを開いて、URL http://localhost:8081/boxdemo にアクセスします。

    次の内容の JSON 応答を取得します。

    結果: "Folder created, retrieved, and deleted successfully"

ユースケース: XML

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:mule-box-connector="http://www.mulesoft.org/schema/mule/mule-box-connector"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
  xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
  http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/mule-box-connector
http://www.mulesoft.org/schema/mule/mule-box-connector/current/mule-mule-box-connector.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">

	<http:listener-config name="HTTP_Listener_config"
		doc:name="HTTP Listener config">
		<http:listener-connection host="localhost"
			port="8081" />
	</http:listener-config>

	<mule-box-connector:config name="Mule_box_connector_Config"
		doc:name="Mule-box-connector Config" property_clientId="#{config.clientId}"
		property_clientSecret="#{config.clientSecret}"
		property_localCallbackConfig="HTTP_Listener_config"
		property_externalCallbackUrl="http://localhost:8081/callback" />
	<flow name="Create-Get-Delete-Folder-Flow">
		<http:listener doc:name="HTTP Listener" path="/boxdemo"
			config-ref="HTTP_Listener_config" />
		<ee:transform doc:name="DataWeave to set folder properties">
			<ee:message>
				<ee:set-payload><![CDATA[%dw 2.0
output application/json
---
{
	parent: {
		id: 0
	},
	"type": "folder",
	name: "SampleFolder"
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>
		<mule-box-connector:create-folder
			doc:name="Create folder" config-ref="Mule_box_connector_Config" />

		<logger level="INFO" doc:name="Logger to log the created Folder ID"
			message="Folder created with ID : #[payload.id]" />
		<mule-box-connector:get-folder doc:name="Get folder"
			config-ref="Mule_box_connector_Config" folder-id="#[payload.id]" />
		<logger level="INFO" doc:name="Logger to log the retrieved folder info"
			message="#[payload]" />
		<mule-box-connector:delete-folder
			doc:name="Delete folder" config-ref="Mule_box_connector_Config"
			folder-id="#[payload.id]" />
		<ee:transform doc:name="DataWeave to show the result">
			<ee:message>
				<ee:set-payload><![CDATA[%dw 2.0
output application/json
---
{
	result : "Folder got created, retrieved and deleted successfully"
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>
	</flow>
</mule>

関連情報

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub