# mulesoft Microsoft Sharepoint Online Connector - Full Documentation
# Microsoft SharePoint Online Connector - Mule 3
Microsoft SharePoint Online Connector v1.0
Microsoft SharePoint Online 用 Anypoint Connector (SharePoint Online Connector) は、コンテンツとドキュメントの管理、イントラネットポータル、コラボレーション、エクストラネット、Web サイト、およびエンタープライズ検索用の Web アプリケーションプラットフォームです。
このコネクタを使用すると、REST API を介した SharePoint とのインテグレーションが可能になります。
リリースノート: [Microsoft SharePoint Online Connector リリースノート](#release-notes::connector/microsoft-sharepoint-online-connector-release-notes.adoc)
サンプル: [Sharepoint Online Connector デモ](https://docs.mulesoft.com/jp/microsoft-sharepoint-online-connector/latest/_attachments%E2%80%8B/sharepoint-online-crud-app-demo.zip)
FAQ: [\[よくある質問について\]](#よくある質問について)
## [](#サポートされている操作)サポートされている操作
- リストおよびリスト項目の API: リストおよびリスト項目の Create、Delete、Retrieve、Update。
- ファイルおよびフォルダーの API:
- ファイル: ファイルの Add、Retrieve content、Retrieve metadata、Delete、Check out、Undo check out、Check in、Publish、Unpublish、Approve、Deny、Recycle、Copy。
- フォルダー: フォルダーの Create、Delete、Retrieve。
## [](#pom-ファイル情報)POM ファイル情報
Studio プロジェクトを Maven 化する場合、プロジェクトの pom.xml ファイルでこの情報を使用できます。
```xml
org.mule.modules
sharepoint-online
x.x.x
mule-plugin
```
`x.x.x` を使用しているコネクタに対応するバージョンに置き換えます。
最新の `pom.xml` ファイル情報を取得するには、 [Anypoint Exchange](https://www.mulesoft.com/exchange/) でコネクタにアクセスし、**\[Dependency Snippets (連動関係スニペット)\]** をクリックします。
## [](#認証)認証
サポート対象の Microsoft SharePoint Online 認証:
- Microsoft Online (Office 365)
- セキュリティトークンを使用する Microsoft Online (Office 365)
- Okta を使用する Microsoft Online (Office 365)
注意: あらゆる種別の HTTP プロキシを使用するようにすべてを設定できます。
### [](#okta-認証)Okta 認証
Okta 認証を使用するようにコネクタを設定するためには、次の情報が必要です。
- Okta Domain (Okta ドメイン): 認証用の Okta ユーザー名とパスワードを受け入れる Okta エンドポイント。例: `your-domain.okta.com`
- Okta Username (Okta ユーザー名): Okta のユーザー名。例: `your-email@example.com`
- Okta Password (Okta パスワード): Okta のパスワード。例:
- Okta API Token (Okta API トークン): Okta は、API 認証にスライドスケール有効期限付きのベアラートークンを使用します。例: `http://developer.okta.com/docs/api/getting_started/getting_a_token.html`
- SharePoint Online Embedded Link (SharePoint Online の埋め込みリンク): Okta から Microsoft Office 365 SharePoint Online アプリケーションへのリンク。例: `https://your-domain.okta.com/home/office365/0oa14mz7f4HAWypdZ1t7/31737`
### [](#sharepoint-online-の認証)SharePoint Online の認証
1. \[Username (ユーザー名)\]、\[Password (パスワード)\]、および \[Site URL (サイト URL)\] を指定します。
2. 認証を設定します。
- 自己署名 SSL 証明書を使用する場合、\[Disable SSL Certificate Validation (SSL 証明書検証の無効化)\] チェックボックスをクリックします。
- SharePoint Online に接続するには、\[Username (ユーザー名)\]、\[Password (パスワード)\]、および \[Site URL (サイト URL)\] を指定します。
あらゆる種別の HTTP プロキシを使用するように接続を設定できます。
3. 必要に応じて、\[Proxy Host (プロキシホスト)\]、\[Proxy Port (プロキシポート)\]、\[Proxy Username (プロキシユーザー名)\]、\[Proxy Password (プロキシパスワード)\] を指定します。
### [](#セキュリティトークン認証)セキュリティトークン認証
SAML セキュリティトークンを使用して、SharePoint にログインできます。POST 要求を介して XML 本文を提供することで、Studio の \[Security Token (セキュリティトークン)\] 項目に入力したセキュリティトークンを取得することができます。
セキュリティトークンを取得するには、次の XML 本文で `https://login.microsoftonline.com/extSTS.srf` に POST 要求を実行します。
```text
http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue
http://www.w3.org/2005/08/addressing/anonymous
https://login.microsoftonline.com/extSTS.srf
[username]
[password]
[endpoint]
http://schemas.xmlsoap.org/ws/2005/05/identity/NoProofKey
http://schemas.xmlsoap.org/ws/2005/02/trust/Issue
urn:oasis:names:tc:SAML:1.0:assertion
```
この要求の応答の タグの間にセキュリティトークンが含まれます。
セキュリティトークンを取得したら、Studio でトークン値を指定します。

- Security token (セキュリティトークン): セキュリティトークンの値を入力します。
- Site URL (サイト URL): サイト URL を `https://.sharepoint.com` の形式で入力します。
## [](#コネクタをインストールする)コネクタをインストールする
1. Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。
2. Anypoint Exchange で \[Login (ログイン)\] をクリックします。
3. コネクタを検索して **\[Install (インストール)\]** をクリックします。
4. 画面の指示に従ってコネクタをインストールします。
### [](#最初のフローを設定する)最初のフローを設定する
1. Anypoint Studio で、**\[File (ファイル)\]** > **\[New (新規)\]** > **\[Mule Project (Mule プロジェクト)\]** をクリックします。
2. \[Project Name (プロジェクト名)\] の値を指定して、**\[Finish (完了)\]** をクリックします。
3. **\[Global Elements (グローバル要素)\]** タブをクリックします。
4. \*\[Create (作成)\] をクリックします。
5. `sharepoint` を検索します。
6. **\[Microsoft SharePoint\]** をクリックして **\[OK\]** をクリックします。
7. 設定するグローバル種別を選択します。

1. **\[Test Connection (接続をテスト)\]** をクリックして、正しく接続されることを確認します。

もう一方の接続種別にも同様の情報が必要です。
**注意**: \[Pooling Profile (プーリングプロファイル)\]、\[Reconnection (再接続)\]、および \[Notes (メモ)\] タブは無視できます。これらは Studio によって提供され、デフォルト情報を含みます。
### [](#studio-フローの作成)Studio フローの作成
Anypoint Studio フローを作成する手順は、次のとおりです。
1. Anypoint Studio で、**\[File (ファイル)\]** > **\[New (新規)\]** > **\[Mule Project (Mule プロジェクト)\]** をクリックします。
2. プロジェクト名を指定して、**\[Finish (完了)\]** をクリックします。
3. `http` を検索して、HTTP Connector をキャンバスにドラッグします。
4. `sharepoint` を検索して、Microsoft SharePoint Connector を HTTP Connector の隣にドラッグします。
5. `json` を検索して、\[Object to JSON\] トランスフォーマーを Microsoft SharePoint Connector の横にドラッグします。

6. HTTP Connector をダブルクリックして、\[Host (ホスト)\] を `0.0.0.0`、\[Port (ポート)\] を `8081`、\[Path (パス)\] を `query` に設定します。**\[OK\]** をクリックします。
7. Microsoft SharePoint Connector をダブルクリックして、緑色のプラス記号をクリックします。
8. 次の設定値を更新します。
1. \[Connector Configuration (コネクタ設定)\] リストで、以前に作成した Microsoft SharePoint の設定をクリックします。
2. \[Operation (操作)\] リストから、**\[List Query (リストクエリ)\]** をクリックします。
**注意**: \[List Query (リストクエリ)\] 操作は、SharePoint インスタンスに正常に接続された後にのみ \[Operation (操作)\] リストに表示されます。
3. \[Language (言語)\] リストから、**\[DataSense Query Language (DataSense クエリ言語)\]** を選択します。
9. クエリビルダーをクリックします。
1. \[Types (種別)\] のリストから、**\[Documents (ドキュメント)\]** をクリックします。
2. \[Fields (項目)\] のリストから、**\[ID\]** と **\[Title (タイトル)\]** をクリックします。
3. \[Order By (並び替え基準)\] から、**\[Title (タイトル)\]** をクリックします。
4. \[Direction (方向)\] から、**\[DESCENDING (降順)\]** をクリックします。

## [](#フローの実行)フローの実行
1. Package Explorer で、プロジェクト名を右クリックし、**\[Run As (別のユーザーとして実行)\]** > **\[Mule Application (Mule アプリケーション)\]** をクリックします。
2. アプリケーションの起動時にコンソールを確認します。エラーがない場合、次のメッセージが表示されます。
```text
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Started app 'sharepoint-online-demo' +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
```
3. `http://0.0.0.0:8081/query` にアクセスします。
4. ドキュメントのリストがタイトルの降順で並び替えられ、JSON 形式で返されます (結果は SharePoint Online インスタンスに応じて異なります)。
```text
[{"__metadata":{"id":"Web/Lists(guid'GUID_VALUE')/Items(4)","uri":"https://ec2-54-200-49-206.us-west-
2.compute.amazonaws.com/_api/Web/Lists(guid'GUID_VALUE')/Items(4)","etag":"\"1\"","type":"SP.Data.Shared_x0020_Document
sItem"},"Id":4,"ID":4,"Title":"folder"}]
```
## [](#操作-リストおよびリスト項目の-api)操作: リストおよびリスト項目の API
リストおよびリスト項目の API を使用すると、SharePoint リストおよびリスト項目を作成、取得、更新、削除できます。
### [](#リスト項目の作成更新削除)リスト項目の作成、更新、削除
項目を作成または更新する場合、リスト ID を指定します。ID を指定すると、DataSense はリストのメタデータを取得し、入力可能な各項目がオブジェクトビルダーに表示されます。
```xml
```
または、コネクタ自体で属性を定義します。
```xml
```
リストの取得および削除には、リスト ID のみが必要です。
```xml
```
項目を作成または更新する場合、リスト ID を指定します。DataSense はリスト ID を使用してリストのメタデータを取得します。オブジェクトビルダーは、入力する必要がある項目を提供します。

### [](#リスト項目のクエリ)リスト項目のクエリ
クエリビルダーを使用します。
左側のパネルには、表示可能な各リストが表示されます。右側のパネルには、選択したリストの項目が表示されます。項目が参照項目の場合、`SharepointListReference` または `SharepointListMultiValueReference` を使用します。

このいずれかの項目をクエリで返すように選択している場合、\[Retrieve Full Objects for Reference Fields (参照項目のすべてのオブジェクトを取得)\] チェックボックスの値に応じて 2 つの種別の戻りオブジェクトを使用できます。
- オフ: 参照オブジェクトの ID と参照オブジェクトリストの ID を含む概要オブジェクト。
```json
{
"Title": "A title",
"LookupFieldId": {
"id": "1",
"lookupListId": "aaaa-1111-bbbb-2222"
},
"MultiValueLookupFieldId": {
"ids": [
1,
2,
3
],
"lookupListId": "cccc-3333-dddd-4444"
}
}
```
このオブジェクトを別のコネクタで使用して、参照先のオブジェクトを for each コンポーネントと共に取得します。

- オン: 完全なオブジェクトグラフを取得します。サイクルがある場合は、概要参照オブジェクトが表示されます。
```json
{
"Title": "A title",
"LookupFieldId": {
"Title": "Another title",
"Id": "1",
"Property1": "A value"
},
"MultiValueLookupFieldId": [
{
"Title": "Another title",
"Id": "1",
"Property1": "A value"
},
{
"Title": "Another title",
"Id": "2",
"Property1": "A value"
}
]
}
```
クエリテキストの例:

注意: このオプションをオンにすると、多くの参照項目がある大きな項目リストの取得に時間がかかることがあります。
以下のような他のリストの操作に加えて DSQL クエリで内部項目名またはタイトル項目名を使用できます。
たとえば、前述のクエリは次のようになります。
SELECT AuthorId, Created, List3MultiId FROM
`` をリスト ID に置き換えます。
タイトルが次の \[Author (作成者)\]、\[Date Created (作成日)\]、および \[Details (詳細)\] に続く場合、項目名を使用してクエリを記述できます。
SELECT Author, 'Date created', Details FROM Inventory
内部項目とタイトル項目を混在させることができます。
SELECT AuthorId, 'Date created', List3MultiId FROM Inventory
内部項目とタイトル項目は、次のリスト操作でのみ使用できます。
- 新しい項目をリストに追加する
- リスト内の既存の項目を更新する
- リスト内の項目を照会する
**注意:** DSQL 句で検索条件を指定する場合、日時データ型で絞り込むには、ISO-8601 形式を使用して値を記述します (例: \[Created (作成日)\] > 「2017-01-01T00:00:00-03:00)。
## [](#操作-ファイルおよびフォルダーの-api)操作: ファイルおよびフォルダーの API
ファイルとフォルダーの API を使用すると、ファイルとフォルダーの作成、取得、更新、削除のほか、ファイルのチェックイン、チェックアウト、パブリッシュ、承認、拒否、コピー、リサイクルをドキュメントリストから行うことができます。
フォルダー操作を使用する場合、サーバーの相対 URL は、フォルダーが存在する場所を参照します。URL の形式は、`/site/docList/innerFolder` または `docList/innerFolder` にすることができます。後者の場合、コネクタの設定のサイト URL パラメーターで指定されたサイトが使用されます。
ファイル操作を使用する場合、ファイルサーバーの相対 URL は、フォルダーサーバーの相対 URL とファイル名 (`/site/docList/innerFolder/filename` または `docList/innerFolder/filename`) を参照します。
### [](#フォルダーの作成および削除)フォルダーの作成および削除
フォルダーを作成または削除するには、サーバーの相対 URL (フォルダーが存在する場所、またはフォルダーを作成する予定の場所) を指定することができます。
結果のフローは次のようになります。
```xml
```
### [](#ファイルの追加)ファイルの追加
ファイルをアップロードするには、物理ファイルを選択するか、入力ストリームをコネクタに渡します。ファイルは、相対 URL を使用してサーバーにアップロードされます。たとえば、次の例を File Connector と共に使用して、ファイルをリストにアップロードできます。
次の入力ストリームを使用します。
```xml
```
大きなファイルをアップロードするには、SharePoint サーバーと IIS サーバーを設定します。
- サイトの SharePoint 管理コンソールで \[Maximum Upload Size (最大アップロードサイズ)\] を 2047MB (最大) に設定します。
- IIS サイトの接続タイムアウトを高い値に設定します。
- 要求の絞り込みで IIS アプリケーションの \[Maximum Allowed Content Length (最大許容コンテンツ長)\] を 2147483647 に設定します。
**注意:** コネクタが使用する SharePoint REST API では、最大 2 GB のファイルのアップロードがサポートされます。大きなファイルを操作する場合は、ファイルへのシステムのローカルパスを `localFilePath` パラメーターの値に提供します。これは、コネクタを介してファイルをアップロードするための最も効果的な方法です。
### [](#ファイルのコンテンツの取得)ファイルのコンテンツの取得
ファイルのコンテンツがバイト配列として返されます。たとえば、次を File Connector の入力として使用して、リストからファイルをダウンロードできます。
```xml
```
### [](#ファイルのメタデータの取得)ファイルのメタデータの取得
この操作では、ファイルの相対パスのみが必要です。
```xml
```
### [](#ファイルのメタデータの更新)ファイルのメタデータの更新
この操作では、ファイルの相対パスとそのキー-値プロパティを更新する必要があります。次の例は、ファイルとそのタイトルの名前を変更する方法を示しています。
```xml
New Title Value
NewFileName.txt
```
### [](#ファイルおよびフォルダーのクエリ)ファイルおよびフォルダーのクエリ
クエリでは、指定されたフォルダー以降で、指定された条件に一致するすべてのファイルとフォルダーが返されます。
クエリビルダーを使用します。
- 左側のパネルには、SharePoint インスタンスからのドキュメントリストが表示されます。選択したインスタンスを開始パスの一部として使用して、ファイルとフォルダーを照会します。
- 右側のパネルでは、すべてのドキュメントリストで同じ項目が表示されます。
- \[Folder Path (フォルダーパス)\] の入力で内部フォルダーを指定して、開始パスとして使用します。
- 再帰チェックボックスを選択すると、開始パスのすべてのフォルダーでファイルとフォルダーが再帰的に検索されます。
クエリビルダーのオプションを設定する方法は次のとおりです。

例:
```text
```
### [](#その他のファイル操作)その他のファイル操作
Approve、Check In、Check Out、Deny、Publish、Undo Checkout、Unpublish の操作を実行できます。ファイルの URL を指定し、必要に応じて追加のコメントをパラメーターとして渡します。
```xml
```
### [](#update-list-item-操作を使用したファイルのメタデータの設定)Update List Item 操作を使用したファイルのメタデータの設定
Update List Item 操作を使用してドキュメントライブラリにアップロードするファイルのメタデータを取得および設定できます。
リスト内のファイルのプロパティを設定するには、\[List Item Id (リスト項目 ID)\] を認識する必要があります。これは、遅延 ListItemAllFields プロパティを使用して取得できます。
次のフローは、File Add を **Update List Item** 操作に直接連結してリストにファイルをアップロードし、その直後にメタデータを設定する方法を示しています。
```xml
Test title
```
## [](#遅延プロパティの解決)遅延プロパティの解決
パフォーマンス上の理由で、多くの SharePoint 操作がエンティティの基本データセットとともに、1 つ以上の遅延プロパティ参照を返します。この遅延プロパティ参照を使用して追加の詳細や関連オブジェクトを取得できます。
汎用の Resolve Object 操作または Resolve Collection 操作を使用して、遅延プロパティセットを 1 つの `Map` または `List