- 記事一覧 >
- ブログ記事
Power Automateエクスポートファイルdefinition.jsonの各IDの正体を暴いた
はじめに
Power Automate
マイフロー → フロー選択 → ・・・ → エクスポート → パッケージ (.zip)
でフローを .zip にエクスポートして、ダウンロードできます。
ダウンロードした PC にて、zip を解凍すると、以下のようなファイルが含まれています。
Microsoft.Flow/flows/3eaaaaaa-eeee-1111-8888-d6aaaaaaaaaa/apisMap.json
Microsoft.Flow/flows/3eaaaaaa-eeee-1111-8888-d6aaaaaaaaaa/connectionsMap.json
Microsoft.Flow/flows/3eaaaaaa-eeee-1111-8888-d6aaaaaaaaaa/definition.json
Microsoft.Flow/flows/manifest.json
manifest.json
これの内の definition.json ですが、フローを JSON で表したものっぽいです。
気合と根性で JSON だけでフローを作成するのも可能だと思われます。(← とんでもなく大変だと思いますが。)
それは、さておき、definition.json について、Share Point 等コネクタを使っていると、謎の ID が多々指定されている部分があります。
例えば、以下の部分の 01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV
等です。
"SharePoint_ライブラリからスクリプトを実行する": {
"runAfter": {
"複数の項目の取得": [
"Succeeded"
]
},
"metadata": {
"01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV": "/Data/新規 Microsoft Excel ワークシート.xlsx",
"01BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVL": "/Scripts/スクリプト.osts",
"operationMetadataId": "9c111111-2222-3333-aaaa-eeeeeeeeeec1"
},
"type": "OpenApiConnection",
"inputs": {
"host": {
"apiId": "/providers/Microsoft.PowerApps/apis/shared_excelonlinebusiness",
"connectionName": "shared_excelonlinebusiness",
"operationId": "RunScriptProdV2"
},
"parameters": {
"source": "sites/example.sharepoint.com,eeeeeeee-1111-2222-a1a1-cccccccccccc,16aaaaaa-dddd-4444-9999-ccccccccccb1",
"drive": "b!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ",
"file": "01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV",
"scriptSource": "sites/example.sharepoint.com,44444444-aaaa-4444-8888-333333333333,eacccccc-3333-4444-aaaa-3333333333dc",
"scriptDrive": "b!69D9D9D9D9D9D9D9D9D9D9_Ax-p3PuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPu",
"scriptId": "01BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVL"
},
"authentication": "@parameters('$authentication')"
}
},
念のため、ID 部分は、改ざんしています。実際には、もっとランダムな文字列になっています。以降同様です。
『この謎の ID を適切に書き換えれば、インポート先の環境が違っても、インポート後に参照先をフローでポチポチと変える必要がないのでは?』
『例えば、Share Point - フォルダー内にファイルが作成されたとき(非推奨)
で指定するフォルダをインポートする前に書き換えて、あたかも最初からその移行先のフォルダが指定されていたようにできるのでは?』
と思い、検証したところ、本当にできたため、紹介していきたいと思います。
検証したトリガー、アクションは、以下です。
・フォルダー内にファイルが作成されたとき(非推奨)
- SharePoint
・複数の項目の取得
- SharePoint
・Share Point ライブラリからスクリプトを実行する(プレビュー)
- Excel Online (Business)
・データセットの更新
- Power BI
上記トリガー、アクションで暴く必要があった ID のみ暴きました。全ての ID を暴いたわけではありません。なお、「暴く」とは、どうやって知ることができるか特定するという意味です。
本記事情報の誤りにより何らかの問題が生じても、一切責任を負いません。
自己責任でお願いします。
2023 年 9 月現在の状況を元に説明しています。
フローエクスポート
・フォルダー内にファイルが作成されたとき(非推奨)
- SharePoint
↓
・複数の項目の取得
- SharePoint
↓
・Share Point ライブラリからスクリプトを実行する(プレビュー)
- Excel Online (Business)
↓
・データセットの更新
- Power BI
と順に実行しているだけで何も意味がないフローを作成して検証します。
各々以下が指定されています。
●フォルダー内にファイルが作成されたとき(非推奨)
- SharePoint
・サイトのアドレス
・フォルダー ID
●複数の項目の取得
- SharePoint
・サイトのアドレス
・リスト名
●Share Point ライブラリからスクリプトを実行する(プレビュー)
- Excel Online (Business)
・ブックの場所
・ブック ライブラリ
・ブック
・スクリプトの場所
・スクリプト ライブラリ
・スクリプト
●データセットの更新
- Power BI
・ワークスペース
・データセット
今回、これらを別のサイト、別のフォルダ/ファイル、別のワークスペース/データセット に definition.json だけ書き換えて、元々のフロー作成者とは別の人がインポート後、エラー無く取り込めたら、成功とします。
マイフロー → フロー選択 → ・・・ → エクスポート → パッケージ (.zip)
で zip ファイルをダウンロードします。
これを展開して、中に入っている definition.json を入手します。
JSON はそのままでは可読性が悪いため、オンラインサービスか何かで整形します。
各ID手動取得
Power Automate の
SharePoint に HTTP 要求を送信します
アクションを使っても分かりますので、そちらの方に興味がある場合、「Power AutomateでID取得」に飛んでください。
フォルダー内にファイルが作成されたとき
まずは、フォルダー内にファイルが作成されたとき_(非推奨)
から見ていきます。
"triggers": {
"フォルダー内にファイルが作成されたとき_(非推奨)": {
"recurrence": {
"frequency": "Minute",
"interval": 5
},
"metadata": {
"%252fShared%2bDocuments%252fData": "/Shared Documents/Data",
"operationMetadataId": "1943f43f-0000-4444-9999-fce3ce3ce32b"
},
"type": "OpenApiConnection",
"inputs": {
"host": {
"apiId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline",
"connectionName": "shared_sharepointonline",
"operationId": "OnNewFile"
},
"parameters": {
"dataset": "https://example.sharepoint.com/sites/newsite",
"folderId": "%252fShared%2bDocuments%252fData",
"inferContentType": true
},
"authentication": "@parameters('$authentication')"
}
}
},
operationMetadataId
のところに 第一 謎の ID を発見しました。
ですが、これは、フォルダ/ファイルの場所やコネクションを指し示しているものではなく、変えなくても良さそうです。
以降同様です。
"dataset": "https://example.sharepoint.com/sites/newsite",
のところは、移行後の Share Point サイト URL に変更が必要です。
"%252fShared%2bDocuments%252fData"
のところは、2重に URL エンコードされているようです。"%252fShared%2bDocuments%252fData"
を2回 URL デコードすると、/Shared Documents/Data
になります。
ということは、/Shared Documents/Data
のようにパスを知っていれば、2重 URL エンコードで生成できます。
URL エンコード、デコードの方法は、オンラインでできたり、いろいろあるため、割愛します。
複数の項目の取得
複数の項目の取得
を解析します。
"actions": {
"複数の項目の取得": {
"runAfter": {},
"metadata": {
"operationMetadataId": "58fafafa-8888-4444-aaaa-2c181818188b"
},
"type": "OpenApiConnection",
"inputs": {
"host": {
"apiId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline",
"connectionName": "shared_sharepointonline",
"operationId": "GetItems"
},
"parameters": {
"dataset": "https://example.sharepoint.com/sites/testsite",
"table": "b7333333-7a55-4777-8aaa-22787e787e77"
},
"authentication": "@parameters('$authentication')"
}
},
...
}
"dataset": "https://example.sharepoint.com/sites/testsite",
のところは、移行後の Share Point サイト URL に変更が必要です。
"table": "b7333333-7a55-4777-8aaa-22787e787e77"
のところに謎 ID が出てきました。
これは、以下の方法で取得できます。
1.指定していた Share Point リストを表示します。
2.歯車アイコン → リストの設定 をクリックします。
3.URL の List=%7B
から %7D
の間を確認します。
URL の ID が JSON の ID と一致しています。ということは、移行後のリストの ID についても同じ操作で確認できます。
Share Point ライブラリからスクリプトを実行する
Share Point ライブラリからスクリプトを実行する(プレビュー)
を解析します。
"actions": {
...
"SharePoint_ライブラリからスクリプトを実行する": {
"runAfter": {
"複数の項目の取得": [
"Succeeded"
]
},
"metadata": {
"01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV": "/Data/新規 Microsoft Excel ワークシート.xlsx",
"01BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVL": "/Scripts/スクリプト.osts",
"operationMetadataId": "9c111111-2222-3333-aaaa-eeeeeeeeeec1"
},
"type": "OpenApiConnection",
"inputs": {
"host": {
"apiId": "/providers/Microsoft.PowerApps/apis/shared_excelonlinebusiness",
"connectionName": "shared_excelonlinebusiness",
"operationId": "RunScriptProdV2"
},
"parameters": {
"source": "sites/example.sharepoint.com,eeeeeeee-1111-2222-a1a1-cccccccccccc,16aaaaaa-dddd-4444-9999-ccccccccccb1",
"drive": "b!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ",
"file": "01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV",
"scriptSource": "sites/example.sharepoint.com,44444444-aaaa-4444-8888-333333333333,eacccccc-3333-4444-aaaa-3333333333dc",
"scriptDrive": "b!69D9D9D9D9D9D9D9D9D9D9_Ax-p3PuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPu",
"scriptId": "01BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVL"
},
"authentication": "@parameters('$authentication')"
}
},
...
}
沢山謎 ID があります。謎 ID マニアにはたまらない光景かもしれません。
まず、一番上の謎 ID 部分"01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV": "/Data/新規 Microsoft Excel ワークシート.xlsx",
から見ていきます。
これは、フローの ブック に指定したブックを示しています。
まず、/Data/新規 Microsoft Excel ワークシート.xlsx
は、
Share Point → ドキュメント を起点としたパスです。
"01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV"
部分は、以下の手順で分かります。
ドキュメント/Data と ファイルが見えているところまで来て、
F12 → ネットワーク → フィルタ部分に _api/web
と入力して、F5 を押してリロードします。
そうすると、RenderListDataAsStream...
と出てくるため、この内の一つを選択し、回答 をクリックします。
回答 のところに訳のわからない JSON が表示されるのですが、これの
".spItemUrl": ...
の部分に目的の ID が載っています。
{
"wpq": "",
"Templates": {},
"ListData": {
"Row": [
{
"ID": "14",
"PermMask": "0x7ffffffffffbffff",
"FSObjType": "0",
"HTML_x0020_File_x0020_Type": "",
"UniqueId": "{6A161616-3333-4444-BBBB-B2B2B2B2B235}",
"ProgId": "",
"NoExecute": "1",
"ContentTypeId": "0x01010033333333333333333333333333333333",
"FileRef": "\u002fsites\u002fnewsite\u002fShared Documents\u002fData\u002f\u65b0\u898f Microsoft Excel \u30ef\u30fc\u30af\u30b7\u30fc\u30c8.xlsx",
"SMTotalSize": "247470",
"File_x0020_Size": "14109",
...
"AccessPolicy": "0",
".spItemUrl": "https:\u002f\u002fexample.sharepoint.com:443\u002f_api\u002fv2.0\u002fdrives\u002fb!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ\u002fitems\u002f01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV?version=Published",
".fileType": "xlsx",
...
少し厄介なことに、複数ファイルの場合、".spItemUrl": ...
が複数あります。"FileRef": ...
部分に該当ファイルのパスが載っているのですが、日本語のファイル名の場合、Unicode エンコードされていて、複数ファイルがある場合、どれがどれか分かりません。
例えば、PowerShell で調べると、
> $unicodeString = '\u002fsites\u002fnewsite\u002fShared Documents\u002fData\u002f\u65b0\u898f Microsoft Excel \u30ef\u30fc\u30af\u30b7\u30fc\u30c8.xlsx'
> $unescapedString = [System.Text.RegularExpressions.Regex]::Unescape($unicodeString)
> Write-Host $unescapedString
/sites/newsite/Shared Documents/Data/新規 Microsoft Excel ワークシート.xlsx
となりますので、今回の場合、"FileRef": "\u002fsites\u002fnewsite\u002fShared Documents\u002fData\u002f\u65b0\u898f Microsoft Excel \u30ef\u30fc\u30af\u30b7\u30fc\u30c8.xlsx",
のすぐ下の".spItemUrl": "https:\u002f\u002fexample.sharepoint.com:443\u002f_api\u002fv2.0\u002fdrives\u002fb!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ\u002fitems\u002f01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV?version=Published",
を見るのが正解になります。
ここで、"drive": "b!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ"
の値も同時に見つかりました。
"01BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVL": "/Scripts/スクリプト.osts",
の01BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVL
も /Data/新規 Microsoft Excel ワークシート.xlsx
と見つけ方は同じです。
次に、"source": "sites/example.sharepoint.com,eeeeeeee-1111-2222-a1a1-cccccccccccc,16aaaaaa-dddd-4444-9999-ccccccccccb1",
部分がまだ判明していません。
引き続き、
F12 → ネットワーク → フィルタ部分に as=json
と入力して、
ホーム → ドキュメント をクリックします。
すると、
listhost.aspx?as=json
と表示されますので、回答 をクリックします。
この JSON を "siteId":
で検索すると、"siteId": "{eeeeeeee-1111-2222-a1a1-cccccccccccc}",
の部分が見つかります。
"webId":
で検索すると、"webId": "{16aaaaaa-dddd-4444-9999-ccccccccccb1}",
の部分が見つかります。
{
"isUserVoiceEnabled": true,
"templateFolderName": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8",
"clientSideApplicationId": "9f010101-eeee-4444-9eee-333333333333",
"contextWebInfo": {
"_ObjectType_": "SP.ContextWebInformation",
...
"spPageContextInfo": {
...
"siteId": "{eeeeeeee-1111-2222-a1a1-cccccccccccc}",
...
"webId": "{16aaaaaa-dddd-4444-9999-ccccccccccb1}",
...
この2つの組み合わせにより、"source": "sites/example.sharepoint.com,eeeeeeee-1111-2222-a1a1-cccccccccccc,16aaaaaa-dddd-4444-9999-ccccccccccb1",
ということが分かります。
"drive":
"file":
は、既に判明している フローの ブック に指定した エクセルファイル関連の ID です。
scriptSource": "sites/example.sharepoint.com,44444444-aaaa-4444-8888-333333333333,eacccccc-3333-4444-aaaa-3333333333dc",
は、
上記、listhost.aspx?as=json
の操作を /Scripts/スクリプト.osts
が置かれているサイトで実施して、ID が判明するはずです。
"scriptDrive": "b!69D9D9D9D9D9D9D9D9D9D9_Ax-p3PuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPu",
に関しても同じく、既にエクセルファイルの方で説明済みの操作にて、".spItemUrl": ...
部分で判明します。
今回、それに該当しませんでしたが、Teams のフォルダを使用している場合、
"source": "groups/cccccccc-bbbb-4444-bbbb-eeeeeeeeeeee"
のようになっていて、
"groupId": "cccccccc-bbbb-4444-bbbb-eeeeeeeeeeee",
の部分を見ることになると思われます。
"scriptSource":
は、
"scriptSource": "https://example.sharepoint.com/sites/testsite",
のような単純なサイト URL 指定の書き方でも良いと思われます。
データセットの更新
データセットの更新
- Power BI を解析します。
"actions": {
...
"データセットの更新": {
"runAfter": {
"SharePoint_ライブラリからスクリプトを実行する": [
"Succeeded"
]
},
"metadata": {
"operationMetadataId": "12cbcbcb-8888-4444-9999-9f1ca1ca1ca1"
},
"type": "OpenApiConnection",
"inputs": {
"host": {
"apiId": "/providers/Microsoft.PowerApps/apis/shared_powerbi",
"connectionName": "shared_powerbi",
"operationId": "RefreshDataset"
},
"parameters": {
"groupid": "myworkspace",
"datasetid": "feddedde-7777-4444-aaaa-a7c0c0c0c034"
},
"authentication": "@parameters('$authentication')"
}
}
...
}
"groupid": "myworkspace",
は、
マイ ワークスペース の場合は、myworkspace
で、それ以外のワークスペースの場合は、
ワークスペースの名前ではなく、Power BI(Web)のワークスペースの URL がhttps://app.powerbi.com/groups/d0363636-cccc-4444-bbbb-d76767676767/list?redirectedFromSignup=1&experience=power-bi
の場合、"groupid": "d0363636-cccc-4444-bbbb-d76767676767",
になります。
"datasetid": "feddedde-7777-4444-aaaa-a7c0c0c0c034"
部分に謎 ID があります。
こちらは、
Power BI(Web)の データセット を見に行くと、分かります。
https://app.powerbi.com/groups/me/datasets/feddedde-7777-4444-aaaa-a7c0c0c0c034/details?redirectedFromSignup=1&experience=power-bi
の
/datasets/.../details
部分です。
definition.json 書き換え
これにて、謎 ID すべて判明しましたので、移行先の謎 ID を調査したものとして、definition.json を書き換えます。
移行先すべての接続先に、この後フローをインポートする人にアクセス権があることが必要です。
具体的な書き換えイメージは、以下のような diff になります。(右が変更後)
インポート後のフローのイメージは、以下の通りです。サイト URL や ブック、スクリプトのパスが変更されています。(書き換えた ID 等に間違いがなければ、実際こうなります。)
書き換えた definition.json を元々あった場所に上書きして、zip 圧縮しなおします。
zip のファイル名は何でも構いません。
definition.json は、整形されたままでも問題ありません。
フローインポート
definition.json を書き換えた zip ファイルをインポートします。
+マイフロー → インポート → パッケージのインポート (レガシ) でアップロードします。
関連リソースの インポート時に選択する の選択は、インポート作業をしている人のアカウント選択が必要でした。別の .json ファイルに紐付き情報がありそうですが、今回は、そちらの検証はパスして、選択します。
フローを見てみます。
特にエラーにならず、入れ替わってて、問題なさそうです。
Power Automate さんに気付かれていなさそうです。
フローを実行してみます。
正常動作しました!
Power AutomateでID取得
上記セクション「各ID手動取得」で URL や F12 で解析して分かった部分ですが、実は、
Power Automate の SharePoint に HTTP 要求を送信します
アクションを駆使する方法でも分かります。
Power BI は未調査です。(URL の一部からすぐに判明して、大した手間ではないと思われますので、パスします。)
以下は、4つとも SharePoint に HTTP 要求を送信します
アクションです。
① --------------------
● 目的"drive": "b!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ",
"scriptDrive": "b!69D9D9D9D9D9D9D9D9D9D9_Ax-p3PuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPu",
を調べます。
● パラメーター
サイトのアドレス:[SharePointサイトを選択]
方法:GET
URI:_api/v2.0/drives/
ヘッダー(キーの入力):Accept
ヘッダー(値の入力):application/json
● 出力例"id":
の部分で分かります。
drive、scriptDrive は、「ドキュメント」を示しているようです。
{
"@odata.context": "https://example.sharepoint.com/sites/testsite/_api/v2.0/$metadata#drive",
"value": [
{
"createdBy": {
"user": {
"displayName": "システム アカウント"
}
},
"createdDateTime": "2023-09-01T20:00:00Z",
"description": "",
"id": "b!69D9D9D9D9D9D9D9D9D9D9_Ax-p3PuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPu",
"lastModifiedBy": {
"user": {
"displayName": "システム アカウント"
}
},
"lastModifiedDateTime": "2023-09-01T20:00:00Z",
"name": "ドキュメント",
"webUrl": "https://example.sharepoint.com/sites/testsite/Shared%20Documents",
"driveType": "documentLibrary",
"owner": {
"group": {
"email": "testsite@example.onmicrosoft.com",
"id": "36666666-3333-4444-8888-90000000009e",
"displayName": "testsite 所有者"
}
},
"quota": {
...
}
}
]
}
② --------------------
● 目的
複数の項目の取得の "table": "b7333333-7a55-4777-8aaa-22787e787e77"
を調べます。
● パラメーター
サイトのアドレス:[SharePointサイトを選択]
方法:GET
URI:_api/web/lists/GetByTitle('<リスト名>')
ヘッダー(キーの入力):Accept
ヘッダー(値の入力):application/json
● 出力例"Id":
の部分で分かります。
{
"odata.metadata": "https://example.sharepoint.com/sites/testsite/_api/$metadata#SP.ApiData.Lists/@Element",
"odata.type": "SP.List",
"odata.id": "https://example.sharepoint.com/sites/testsite/_api/Web/Lists(guid'b73aaaaa-7777-4444-8888-227227227227')",
"odata.etag": "\"13\"",
"odata.editLink": "Web/Lists(guid'b73aaaaa-7777-4444-8888-227227227227')",
"AllowContentTypes": true,
"BaseTemplate": 100,
"BaseType": 0,
"ContentTypesEnabled": false,
"CrawlNonDefaultViews": false,
"Created": "2023-09-01T20:00:00Z",
"CurrentChangeToken": {
"StringValue": "1;3;b73aaaaa-7777-4444-8888-227227227227;633333333333330000;366666666"
},
"DefaultContentApprovalWorkflowId": "00000000-0000-0000-0000-000000000000",
"DefaultItemOpenUseListSetting": false,
"Description": " ",
"Direction": "none",
"DisableCommenting": false,
"DisableGridEditing": false,
"DraftVersionVisibility": 0,
"EnableAttachments": true,
"EnableFolderCreation": false,
"EnableMinorVersions": false,
"EnableModeration": false,
"EnableRequestSignOff": true,
"EnableVersioning": true,
"EntityTypeName": "ListList",
"ExemptFromBlockDownloadOfNonViewableFiles": false,
"FileSavePostProcessingEnabled": false,
"ForceCheckout": false,
"HasExternalDataSource": false,
"Hidden": false,
"Id": "b7333333-7a55-4777-8aaa-22787e787e77",
"ImagePath": {
"DecodedUrl": "/_layouts/15/images/itgen.gif?rev=47"
},
"ImageUrl": "/_layouts/15/images/itgen.gif?rev=47",
...
"Title": "売上"
}
③ --------------------
● 目的"file": "01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV",
"scriptId": "01BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVL"
を調べます。
● パラメーター
サイトのアドレス:[SharePointサイトを選択]
方法:GET
URI:_api/v2.0/drives/<DriveId>/root:<ドキュメント配下からのフルパス>
ヘッダー(キーの入力):Accept
ヘッダー(値の入力):application/json
● 出力例"id":
の部分で分かります。
{
"@odata.context": "https://example.sharepoint.com/sites/newsite/_api/v2.0/$metadata#items/$entity",
"@content.downloadUrl": "https://example.sharepoint.com/sites/newsite/_layouts/15/download.aspx?UniqueId=6aaaaaaa-3333-4333333333333333333335&Translate=false&tempauth=xxx.xxx-xxx.xxx-xxx-xxx&ApiVersion=2.0",
"createdBy": {
"user": {
"email": "taro_yamada@example.onmicrosoft.com",
"id": "07555555-aaaa-4444-8888-d65656565ca9",
"displayName": "Yamada, Taro/山田 太郎"
}
},
"createdDateTime": "2023-09-01T20:00:00Z",
"eTag": "\"{6AAAAAAA-3333-4333333333333333333335},5\"",
"id": "01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV",
"lastModifiedBy": {
"user": {
"email": "taro_yamada@example.onmicrosoft.com",
"id": "07555555-aaaa-4444-8888-d65656565ca9",
"displayName": "Yamada, Taro/山田 太郎"
}
},
"lastModifiedDateTime": "2023-09-01T20:00:00Z",
"name": "新規 Microsoft Excel ワークシート.xlsx",
"parentReference": {
"driveType": "documentLibrary",
"driveId": "b!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ",
"id": "01ZHNCCCCCCCCCCCCCCCCCCCCCCCCCCC2F",
"path": "/drives/b!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ/root:/Data",
"siteId": "44444444-aaaa-4444-8888-333333333333"
},
...
"size": 14109
}
④ --------------------
● 目的"source": "sites/example.sharepoint.com,eeeeeeee-1111-2222-a1a1-cccccccccccc,16aaaaaa-dddd-4444-9999-ccccccccccb1",
"scriptSource": "sites/example.sharepoint.com,44444444-aaaa-4444-8888-333333333333,eacccccc-3333-4444-aaaa-3333333333dc",
の
siteId(,以前の ID)
webId(,以降の ID)
を調べます。
● パラメーター
サイトのアドレス:[SharePointサイトを選択]
方法:GET
URI:_api/v2.0/sites/<SharePointホスト名>
ヘッダー(キーの入力):Accept
ヘッダー(値の入力):application/json
● 出力例"id":
の部分で分かります。
{
"@odata.context": "https://example.sharepoint.com/sites/newsite/_api/v2.0/$metadata#sites/$entity",
"createdDateTime": "2023-09-01T10:10:10.663Z",
"description": "newsite",
"id": "example.sharepoint.com,eeeeeeee-1111-2222-a1a1-cccccccccccc,16aaaaaa-dddd-4444-9999-ccccccccccb1",
"lastModifiedDateTime": "2023-09-01T10:10:10Z",
"name": "newsite",
"webUrl": "https://example.sharepoint.com/sites/newsite",
"dataLocationCode": "JPN",
"root": {},
"sensitivityLabel": {},
"siteCollection": {
"hostName": "example.sharepoint.com"
},
"template": {
"definitionName": "GROUP",
"id": 64,
"name": "GROUP#0"
},
"title": "newsite"
}
フローで ID が分かるということは、頑張れば、definition.json 書き換えまでフローにできそうです。
・・・。頑張ってください。
以上!
その他、宣伝、誹謗中傷等、当方が不適切と判断した書き込みは、理由の如何を問わず、投稿者に断りなく削除します。
書き込み内容について、一切の責任を負いません。
このコメント機能は、予告無く廃止する可能性があります。ご了承ください。
コメントの削除をご依頼の場合はTwitterのDM等でご連絡ください。