サイト テンプレート JSON スキーマ

サイト テンプレートは、アクション の一覧です。 リストを作成するといった複雑なアクションの場合には、サブアクションもあります。 各アクションは、「動詞」の値で指定されます。 動詞アクションは、JSON スクリプトに表示される順序で実行されます。 ここにリストされている動詞アクションのみを使用できます。それ以外を使用すると、サイト スクリプトをアップロードしようとするときに "アクションを処理できません" というエラーがスローされます。 今後、その他のアクションも追加される予定です。

全体的な JSON 構造は次のように指定されます。

{
  "$schema": "schema.json",
  "actions": [
    ...
    <one or more verb actions>
    ...
  ],
  "bindata": { },
  "version": 1
}

ヒント

最新の JSON スキーマ ファイルは、https://developer.microsoft.com/json-schemas/sp/site-design-script-actions.schema.json で確認および参照できます。

注:

サイト上で [アクション] を複数回実行することができます。 同じサイトで同じパラメータを使用して [アクション] を再実行すると、既存のスキーマが更新され、スキーマが重複することはありません。

addContentTypesFromHub

コンテンツ タイプ ハブからサイトにコンテンツ タイプを同期するには、 addContentTypesFromHub 動詞を使用します。

注:

addContentTypesFromHub をサイトに適用すると、リストの addContentType サブアクションを名前でリストに追加できます。

JSON 値

  • ids: 同期する必要があるコンテンツ タイプ ID の配列。

{
  "verb": "addContentTypesFromHub",
  "ids": ["0x01007CE30DD1206047728BAFD1C39A850120"]
}

新しい SharePoint リストを作成する

createSPList 動詞を使用して、新しい SharePoint リストを作成します。

注:

createSPList がサイトに適用されると、同じリスト名で createSPList を実行すると、既存のリストに対する更新として機能します。

JSON 値

  • listName: リストの名前です。

  • templateType: リストに適用するテンプレートです。 通常は値 100 を使用します。 テンプレートのタイプ値の完全な一覧については、「SPListTemplateType Enum」に記載されています - ただし、現在サポートされているのは以下のものです。

    リスト テンプレート名 列挙
    リスト 100
    文書ライブラリ 101
    アンケート 102
    リンク 103
    Announcements 104
    連絡先 105
    イベント 106
    タスク 107
    ディスカッション掲示板 108
    PictureLibrary 109
    サイト ページ 119
    案件履歴 1100

    101 または 119 を使用し、既定の名前 ([ドキュメント] または[サイト ページ]) を参照している場合は、テンプレートを使用して作成したライブラリを変更できます。 次の例を参照してください。

  • subactions: リストを作成するために、指定された順番で実行されるアクションの配列です。

{
  "verb": "createSPList",
  "listName": "Customer Tracking",
  "templateType": 100,
  "subactions": [
    {
      "verb": "setDescription",
      "description": "List of Customers and Orders"
    }
  ]
},
{
  "verb": "createSPList",
  "listName": "Documents",
  "templateType": 101,
  "subactions": [
    {
      "verb": "setDescription",
      "description": "This is a modified default document library"
    }
  ]
}

サブアクション配列には、リストを構成する方法を指定するための追加操作が指定されています。 サブアクションも verb 値を使用して指定されます。

setDescription

リストの説明を設定します。

JSON 値

  • description: 新しいリストの説明です。

{
  "verb": "setDescription",
  "description": "List of Customers and Orders"
}

addSPField

新しいフィールドを追加します。

JSON 値

  • fieldType: フィールド タイプは、TextNoteNumberBooleanUser、または DateTime に設定できます。 他のデータ型については、addSPFieldXml アクションを参照してください。
  • displayName: フィールドの表示名です。
  • id: これは省略可能な属性です。 指定する場合、フィールドの id を指定します。 ランダムに生成された GUID は、一意である必要があります。 スクリプトが再実行される場合にフィールドが複数回追加されていないことを確認するために、この値を指定することをお勧めします。
  • internalName: これは省略可能な属性です。 指定する場合、フィールドの内部名を指定します。 指定しない場合、内部名は表示名に基づきます。
  • isRequired: 情報を含めるためにこのフィールドが必要な場合は True、それ以外の場合は False を指定します。
  • addToDefaultView: フィールドを既定のビューに追加する場合は True、それ以外の場合は False を指定します。
  • enforceUnique: 既定値が False に設定されているオプションの属性です。 True に設定する場合、このフィールドのすべての値は一意である必要があります。

{
  "verb": "addSPField",
  "fieldType": "Text",
  "displayName": "Customer Name",
  "isRequired": false,
  "id": "c532fcb9-cdb3-45c6-8247-c784dcd58e1a",
  "addToDefaultView": true
}

deleteSPField

選択したテンプレートの種類で指定された既定のフィールドを削除します。

JSON 値

  • displayName: 削除するフィールドを識別するための表示名です。

{
  "verb": "deleteSPField",
  "displayName": "Modified"
}

addSPFieldXml

Collaborative Application Markup Language (CAML) を使用して、フィールドとそれらの要素を定義できるようにします。 「フィールド要素 (フィールド)」を参照してください。 スクリプトを 1 回以上実行する場合にフィールドが複数回作成されるのを防ぐためには、フィールド schemaXml で ID 属性を指定することが重要になります。

現在、これらのフィールド コンストラクトは、サイト列として指定することも、コンテンツ タイプに追加することもできません。 Field XML を使用してサイト列を作成するには、createSiteColumnXml アクションを使用します。

JSON 値

  • schemaXml: フィールドを定義する CAML ブロックです。
  • addToDefaultView: フィールドを既定のビューに追加する場合は True、それ以外の場合は False を指定します。

{
  "verb": "addSPFieldXml",
  "schemaXml": "<Field ID=\"{596cbd92-36e3-40cc-a910-0f53468ce5e4}\" Type=\"Choice\" DisplayName=\"Project Category\" Required=\"FALSE\" Format=\"Dropdown\" StaticName=\"ProjectCategory\" Name=\"ProjectCategory\"><Default>Operations</Default><CHOICES><CHOICE>Operations</CHOICE><CHOICE>IT</CHOICE><CHOICE>Legal</CHOICE><CHOICE>Engineering</CHOICE></CHOICES></Field>"
}

addSPLookupFieldXml

Collaborative Application Markup Language (CAML) を使用して、ルックアップ フィールドとそれらの依存リスト要素を定義できるようにします。 「フィールド要素 (フィールド)」を参照してください。 スクリプトを 1 回以上実行する場合にフィールドが複数回作成されるのを防ぐためには、フィールド schemaXml で ID 属性を指定することが重要になります。

JSON 値

  • schemaXml: フィールドを定義する CAML ブロックです。
  • targetListName: このルックアップ フィールドが参照しているリストを特定するための名前です。 この値か targetListUrl のいずれかを指定します。
  • targetListUrl: このルックアップ フィールドが参照しているリストを特定するための Web 相対 URL です。 この値か targetListName のいずれかを指定します。
  • addToDefaultView: フィールドを既定のビューに追加する場合は True、それ以外の場合は False を指定します。

{
  "verb": "addSPLookupFieldXml",
  "schemaXml": "<Field Type=\"Lookup\" DisplayName=\"Contoso Project Category\" Required=\"FALSE\" EnforceUniqueValues=\"FALSE\" ShowField=\"Title\" UnlimitedLengthInDocumentLibrary=\"FALSE\" RelationshipDeleteBehavior=\"None\" ID=\"{101f1f89-d667-4c7f-9ebc-76cb5831d0a2}\" StaticName=\"ContosoProjectCategory\" Name=\"ContosoProjectCategory\" />",
  "targetListName": "Contoso Project Master"
}

addSiteColumn

以前に定義したサイト列をリスト (既存またはサイト スクリプトを使用して作成) に直接追加するサブアクション。

JSON 値

  • internalName: 追加するサイト列の内部名です。
  • addToDefaultView: 既定値が False の省略可能な属性。 True の場合、新しく追加されたフィールドも既定のビューに追加されます。

 {
  "verb": "addSiteColumn",
  "internalName": "siteColumnUser",
  "addToDefaultView": true
 }

addSPView

ビューを定義し、リストに追加します。 このアクションを使用して、目的の列を指定したり、リスト アイテムが表示される方法 (CAML クエリを使用します) を指定したりします。 アクション プロパティを使用すると、行の制限、ビューをページングするかどうか、および入れ子になったフォルダーのアイテム上のリソースを指定できます。 既定値として構築したビューを指定することもできます。

JSON 値

  • name: ビューの名前を指定します。
  • viewFields: ビュー内のフィールドの内部名の配列です。
  • query: ビューのクエリの where 句を含む CAML クエリ文字列です。 「CAML スキーマ」 を参照してください。
  • rowLimit: ビューの行制限です。
  • isPaged: ビューをページングするかどうかを指定します。
  • makeDefault: True の場合、ビューはリストの既定になります。そうしない場合は、False を選択します。
  • scope: ビューの範囲を指定するオプションの設定です。 詳細については、「SPViewScope 列挙」を参照してください。
  • formatterJSON: ビューの JSON 形式を指定するオプションの設定です。

{
  "verb": "addSPView",
  "name": "Contoso Projects by Category",
  "viewFields":
  [
    "ID",
    "Title",
    "siteColumnUser",
    "ProjectCategory"
  ],
  "query": "<OrderBy><FieldRef Name=\"ProjectCategory\" /><FieldRef Name=\"siteColumnUser\" Ascending=\"FALSE\" /></OrderBy>",
  "rowLimit": 100,
  "isPaged": true,
  "makeDefault": true
}

removeSPView

リストから 1 つのビューを削除します このアクションは、サイト テンプレートによって適用されているビューを削除するためにも使用できます。

JSON 値

  • name: 削除するビューの名前です。

{
  "verb": "removeSPView",
  "name": "All Items"
}

addContentType

リストにコンテンツ タイプを追加します。 現在、これらは、サイト テンプレートに含まれている既定のコンテンツ タイプ、または createContentType アクションを使用してスクリプトで定義されているコンテンツ タイプに制限されています。

注:

現在、エンタープライズ用のコンテンツ タイプの追加をサポートしていません。

JSON 値

  • name: 追加するコンテンツ タイプの名前です。

{
  "verb": "addContentType",
  "name": "name"
}

removeContentType

選択したテンプレートの種類で指定されたコンテンツ タイプを削除します。

JSON 値

  • name: 削除するコンテンツ タイプの名前です。

{
  "verb": "removeContentType",
  "name": "name"
}

setSPFieldCustomFormatter

フィールドで列の書式設定を行います。 詳細については、「列の書式設定で SharePoint をカスタマイズする」を参照してください。

JSON 値

  • fieldDisplayName: 実行するフィールドの表示名です。
  • formatterJSON: フィールド CustomFormatter として使用する JSON オブジェクトです。

この例では数値の列をデータ バーとして書式設定しています。

{
  "verb": "setSPFieldCustomFormatter",
  "fieldDisplayName": "Effort (days)",
  "formatterJSON":
  {
    "debugMode": true,
    "elmType": "div",
    "txtContent": "@currentField",
    "attributes": {
      "class": "sp-field-dataBars"
    },
    "style": {
      "width": {
        "operator": "?",
        "operands": [
          {
            "operator": ">",
            "operands": ["@currentField", "20"]
          },
          "100%",
          {
            "operator": "+",
              "operands": [
                {
                  "operator": "toString()",
                  "operands": [
                    {
                      "operator": "*",
                      "operands": ["@currentField",5]
                    }
                  ]
                },
                "%"
              ]
          }
        ]
      }
    }
  }
}

associateFieldCustomizer

リスト フィールドのフィールド拡張機能に登録します。 これらのクライアント側拡張機能の詳細については、ビルド フィールド カスタマイザーチュートリアルを参照してください。

JSON 値

  • internalName: 実行するフィールドの内部名です。
  • clientSiteComponentId: アプリ カタログでの拡張情報の識別子 (GUID) です。 このプロパティの値は manifest.json ファイルまたは elements.xml ファイル内にあります。
  • clientSiteComponentProperties: フィールド カスタマイザー拡張機能インスタンスにプロパティを提供するために使用される、オプションのパラメーターです。

{
  "verb": "createSPList",
  "listName": "Custom List with Slider Extension",
  "templateType": 100,
  "subactions": [
    {
      "verb": "setDescription",
      "description": "Custom list to illustrate SharePoint site scripting"
    },
    {
      "verb": "addSPField",
      "fieldType": "Text",
      "displayName": "Text Field",
      "isRequired": false,
      "addToDefaultView": true
    },
    {
      "verb": "addSPField",
      "fieldType": "Number",
      "displayName": "Number Field",
      "internalName": "ElectricSlide",
      "addToDefaultView": true,
      "isRequired": true
    },
    {
      "verb": "associateFieldCustomizer",
      "internalName": "ElectricSlide",
      "clientSideComponentId": "35944670-3111-4482-b152-9e9d1sean9f7",
      "clientSideComponentProperties": "{\"sampleText\":\"Yes - added by a site template, what?\"}"
    }
  ]
}

associateListViewCommandSet

ListViewCommandSet をリストに関連付ける

JSON 値

  • title: 拡張機能のタイトルです。
  • location: コマンドが表示される場所を指定する必須パラメーターです。 オプションは、ClientSideExtension.ListViewCommandSet.ContextMenu または ClientSideExtension.ListViewCommandSet.CommandBar です。
  • clientSideComponentId: アプリ カタログでの拡張情報の識別子 (GUID) です。 このプロパティの値は manifest.json ファイルまたは elements.xml ファイル内にあります。
  • clientSideComponentProperties: 拡張機能インスタンスにプロパティを提供するために使用される、オプションのパラメーターです。

{
  "verb": "createSPList",
  "listName": "CustomList",
  "templateType": 100,
  "subactions": [
      {
        "verb": "setDescription",
        "description": "Custom list to illustrate SharePoint site scripting"
      },
      {
        "verb": "addSPField",
        "fieldType": "Text",
        "displayName": "Text Field",
        "isRequired": false,
        "addToDefaultView": true
      },
      {
        "verb": "addSPField",
        "fieldType": "Number",
        "displayName": "Number Field",
        "internalName": "ElectricSlide",
        "addToDefaultView": true,
        "isRequired": true
      },
      {
        "verb": "associateListViewCommandSet",
        "title": "HelloWorld",
        "location": "ClientSideExtension.ListViewCommandSet.CommandBar",
        "clientSideComponentId": "13234283-d6c2-408f-a9ef-31a920c8ae78",
        "clientSideComponentProperties": "{\"sampleText\":\"added by a site template\"}"
      }
  ]
}

setTitle

リストの名前を変更します。 特定の名前を持つ新しいリストを作成するには、CreateSPList アクションで setTitle を使用する代わりに listName パラメーターを使用します。

注:

setTitle を使用するとリストの名前が変更され、サイト テンプレートを再適用してもリストが更新されないようにします。

JSON 値

  • title: 新しいリストのタイトルを指定します。

{
  "verb": "setTitle",
  "title": "Customers and Orders"
}

新しいサイト列を定義する

createSiteColumn 動詞を使用し、直接または addContentType アクションを使用してリストに関連付けることができる新しいサイト列を定義します。

JSON 値

  • fieldType: 追加する列のタイプです。 SPField などのサポートされる値は、Text、Note、Number、Boolean、User、および DateTime.です。 他のデータ型については、addSPFieldXml のスクリプト操作を参照してください。
  • internalName: サイト列の内部名です。
  • displayName: サイト 列の表示名です。
  • isRequired: 情報を含めるためにこのフィールドが必要な場合は True、それ以外の場合は False を指定します。
  • id: これは省略可能な属性です。 指定する場合、フィールドの id を指定します。 ランダムに生成された GUID は、一意である必要があります。 スクリプトが再実行される場合にフィールドが複数回追加されていないことを確認するために、この値を指定することをお勧めします。
  • group: 列グループを指定するオプションの属性です。
  • enforceUnique: 既定値が False に設定されているオプションの属性です。 True に設定する場合、このフィールドのすべての値は一意である必要があります。

{
  "verb": "createSiteColumn",
  "fieldType": "User",
  "internalName": "siteColumn4User",
  "displayName": "Project Owner",
  "isRequired": false,
  "id": "181c4370-cdae-471b-9499-730046e55b75"
}

createSiteColumnXml 動詞を使用して、createSiteColumn でサポートされていない複雑なデータ型に対して、新しいサイト列を定義します。 作成したサイト列は、リストに直接関連付けることも、addContentType アクションを使用して関連付けることもできます。 スクリプトを 1 回以上実行する場合にフィールドが複数回作成されるのを防ぐためには、フィールド schemaXml で ID 属性を指定することが重要になります。

JSON 値

  • schemaXml: フィールドを定義する CAML ブロックです。
  • pushChanges: この変更を、このフィールドを既に参照しているリストにプッシュするかどうかを指定します。 既定は True です。

{
  "verb": "createSiteColumnXml",
  "schemaXml": "<Field ID=\"{82581bd1-356f-4206-8ff7-a3b6ad1f5553}\" Type=\"Choice\" DisplayName=\"Project Status\" Required=\"FALSE\" Format=\"Dropdown\" StaticName=\"ProjectStatus\" Name=\"ProjectStatus\"><Default>In Progress</Default><CHOICES><CHOICE>In Progress</CHOICE><CHOICE>In Review</CHOICE><CHOICE>Done</CHOICE><CHOICE>Has Issues</CHOICE></CHOICES></Field>"
}

新しいコンテンツ タイプを定義する

createContentType を使用し、addContentType アクションを使用してリストに関連付けることができる新しいコンテンツ タイプを定義します。

JSON 値

注:

コンテンツ タイプ ID を参照する際、ID、parentName、parentId の 3 つのうち 1 つが必要になります。

  • name: 作成するコンテンツ タイプの名前です。
  • description: コンテンツ タイプのオプションの説明です。
  • parentName: 親コンテンツ タイプの名前です。
  • parentId: 親コンテンツ タイプの ID です。
  • id: コンテンツ タイプの ID です。
  • hidden: コンテンツ タイプを表示するか、非表示にするかを指定します。
  • group: コンテンツ タイプのグループです。
  • subactions: コンテンツ タイプで実行するサブアクションを指定します。 これらは、追加するサイト列を指定するために使用します。

{
  "verb": "createContentType",
  "name": "Contoso Projects",
  "description": "custom list content type",
  "parentName": "Item",
  "hidden": false,
  "group": "Contoso",
  "subactions":
    [
      {
        "verb": "addSiteColumn",
        "internalName": "siteColumn1Text"
      },
      {
        "verb": "addSiteColumn",
        "internalName": "siteColumn2Number"
        },
      {
        "verb": "addSiteColumn",
        "internalName": "siteColumn3Note"
      }
    ]
}

addSiteColumn

以前に定義したサイト列をコンテンツ タイプ (既存またはサイト スクリプトを使用して作成) に直接追加するサブアクション。

JSON 値

  • internalName: 追加するサイト列の内部名です。

 {
  "verb": "addSiteColumn",
  "internalName": "siteColumnUser"
 }

removeSiteColumn

リストまたはコンテンツ タイプからサイト列を削除するサブアクション。

JSON 値

  • internalName: 削除するサイト列の内部名です。

 {
  "verb": "removeSiteColumn",
  "internalName": "siteColumnUser"
 }

addNavLink 動詞を使用して、クイック起動またはハブ ナビゲーション サイトに新しいナビゲーション リンクを追加します。

JSON 値

  • url: 追加するリンクの URL です。
  • displayName: リンクの表示名です。
  • navComponent: クイック起動、ハブまたはフッターにリンクを追加するコンポーネントです。 既定は「クイック起動」です。
  • isWebRelative: リンクが Web の相対である場合は True、それ以外の場合は False となります。 既定値は False です。
  • parentDisplayName: 省略可能なパラメーターです。 指定した場合、このナビゲーション リンクは、この表示名を持つナビゲーション リンクの子 (サブ リンク) となります。 このパラメーターと parentUrl の両方が指定されている場合、両方に一致するリンクが親として検索されます。
  • parentUrl: 省略可能なパラメーターです。 指定した場合、このナビゲーション リンクは、この URL を持つナビゲーション リンクの子 (サブ リンク) となります。 このパラメーターと parentDisplayName の両方が指定されている場合、両方に一致するリンクが親として検索されます。
  • isParentUrlWebRelative: 省略可能なパラメーターです。 リンクが Web の相対である場合は True、それ以外の場合は False となります。 既定値は False です。

注:

入れ子になったサイト アイテム (リストなど) にリンクを追加する場合は、必ずルートからのパス参照を追加してください。

{
  "verb": "addNavLink",
  "url": "/Customer Event Collateral",
  "displayName": "Event Collateral",
  "navComponent":"Hub",
  "isWebRelative": true
},
{
    "verb": "addNavLink",
    "url": "/Lists/Project Activities",
    "displayName": "Project Activities",
    "isWebRelative": true
    },
{
  "verb": "addNavLink",
  "url": "https://learn.microsoft.com/sharepoint/dev/declarative-customization/site-design-overview",
  "displayName": "SharePoint Site Design Overview",
  "parentDisplayName": "Documents"
},
{
  "verb": "addNavLink",
  "url": "https://learn.microsoft.com/sharepoint/dev/declarative-customization/site-design-json-schema#add-a-navigation-link",
  "displayName": "About Site Footer",
  "navComponent":"Footer"
},
{
  "verb": "addNavLink",
  "url": "",
  "displayName": "Linkless Heading",
  "isWebRelative": false
}

removeNavLink 動詞を使用して、サイトからナビゲーション リンクを削除します。

JSON 値

  • url: 削除するリンクの URL です。
  • displayName: リンクの表示名です。
  • navComponent: クイック起動、ハブまたはフッターからリンクを削除するコンポーネントです。 既定は「クイック起動」です。
  • isWebRelative: リンクが Web の相対である場合は True、それ以外の場合は False となります。

注:

このアクションは、コラボレーション サイトやコミュニケーション サイトのテンプレートによって追加されたサイト リンクを削除するために使用できます ([ホーム]、[ドキュメント]、[ページ]、[会話] など)。

{
  "verb": "removeNavLink",
  "displayName": "Home",
  "isWebRelative": true
},
{
  "verb": "removeNavLink",
  "displayName": "Pages",
  "isWebRelative": true
},
{
  "verb": "removeNavLink",
  "displayName": "Conversations",
  "isWebRelative": true
},
{
  "verb": "removeNavLink",
  "url": "/_layouts/15/groupstatus.aspx?Target=TEAM",
  "displayName": "Teams",
  "isWebRelative": true
}

特殊文字を入力する

英語以外の言語で作成したサイトには、特殊文字が含まれている可能性があります。 特殊文字を含む JSON コンテンツを閲覧するためには、Utf-8 エンコードを使用します。

Get-Content '<Folder_location_to_site_script>\site-script.json' -Raw -Encoding UTF8

テーマを適用

applyTheme 動詞を使用して、サイトにカスタム テーマを追加します。 これらのテーマの作成およびアップロード方法の詳細については、「SharePoint サイトのテーマ」を参照してください。 このサイト アクションは、カスタム テーマを適用する場合にのみ動作します。製品内の SharePoint テーマの一つを適用するには、カスタムのテーマとしてコピーを作成し、それを参照します。

注:

このアクションは、チャネル サイトに対して自動的にブロックされます。

JSON 値

  • themeName: 適用するテーマの名前です。

{
  "verb": "applyTheme",
  "themeName": "Blue Yonder"
}

ブランドのプロパティを設定する

setSiteBranding 動詞を使用して、ナビゲーション レイアウト、ヘッダー レイアウト、ヘッダーの背景を指定します。

注:

ナビゲーション レイアウトの設定は、コミュニケーション サイト テンプレートとハブ ナビゲーションにのみ機能します。 このアクションは、チャネル サイトに対して自動的にブロックされます。

JSON 値

  • navigationLayout: ナビゲーション レイアウトをカスケードまたはメガメニューに指定します。
  • headerLayout: ヘッダー レイアウトを標準または圧縮に指定します。
  • headerBackground: ヘッダーの背景をなし、中間、柔らかい、または強いに指定します。
  • showFooter: サイト フッターを表示するかどうかを指定します。

{
  "verb": "setSiteBranding",
  "navigationLayout": "Megamenu",
  "headerLayout": "Compact",
  "headerBackground": "Strong",
  "showFooter": true
}

setSiteLogo 動詞を使用して、サイトのロゴを指定します。

注:

このアクションは、コミュニケーション サイト テンプレート (68) でのみ機能します。

JSON 値

  • url: 使用するロゴ画像の URL です。

{
  "verb": "setSiteLogo",
  "url": "/Customer Event Collateral/logo.jpg"
}

ハブ サイトを結合する

注:

このアクションは、チャネル サイトに対して自動的にブロックされます。

joinHubSite 動詞を使用して、サイトを指定のハブ サイトに結合します。

JSON 値

  • hubSiteId: 参加するハブ サイトの ID です。
  • name: ハブ サイトの名前を指定するオプションの文字列です。

注:

hubSiteId を取得するには、Connect-PnPOnline コマンドレットを使用してサイトにサインインし、実行します。

$hubSiteName = "My Hub Site"
Get-PnPHubSite | Where-Object { $_.Title -eq $hubSiteName }

これにより、$hubSiteName という名前のハブ サイトに関する情報が返されます。 HubSiteId は SiteId として返されます。

{
  "verb": "joinHubSite",
  "hubSiteId": "e337cc17-b355-45d2-8dd4-e056f1bcf6f6"
}

アドインまたはソリューションをインストールする

installSolution アクション使用して、テナント アプリ カタログから展開済みのアドインまたは SharePoint Framework のソリューションをインストールします。

注:

ソリューション ID を取得するには、Connect-PnPOnline コマンドレットを使用してサイトにサインインし、Get-PnPApp を実行します。 この操作によって、展開したソリューションの一覧が返されます。 複数地域テナントの場合は、各地理的位置のソリューションを設定してから製品 ID を使用します。 アプリ カタログにソリューションをアップロードするか、ソリューション定義のアップロードを行い、製品 ID を取得します。

{
  "verb": "installSolution",
  "id": "d40e4edc-a6da-4cd8-b82d-bba970976803"
}

拡張機能を登録する

associateExtension アクションを使用して、テナント アプリ カタログから展開された SharePoint Framework の拡張機能を登録します。

注:

SharePoint Framework の拡張機能を作成し、構成する方法の詳細については、SharePoint フレームワーク拡張の概要 を参照してください。

JSON 値

  • title: アプリ カタログでの拡張機能のタイトルです。
  • location: 拡張機能のタイプを指定するために使用します。 コマンドの作成に使用する場合は、コマンドが表示される場所。それ以外の場合は、ClientSideExtension.ApplicationCustomizer に設定する必要があります。
  • clientSideComponentId: アプリ カタログでの拡張情報の識別子 (GUID) です。 このプロパティの値は manifest.json ファイルまたは elements.xml ファイル内にあります。
  • clientSideComponentProperties: 拡張機能インスタンスにプロパティを提供するために使用される、オプションのパラメーターです。
  • registrationId: オプションのパラメーター。これは、(リスト拡張情報の場合) 拡張情報が関連付けられているリストのタイプを示します。
  • registrationType: オプションのパラメーター。これは、拡張機能がリストと関連付けられている場合に指定する必要があります。
  • scope: これは、拡張機能が Web またはSiteに関連付けられているかどうかを示します。

{
  "verb": "associateExtension",
  "title": "SPFXApplicationCustomizer Example",
  "location": "ClientSideExtension.ApplicationCustomizer",
  "clientSideComponentId": "40d64749-a6e5-4691-b440-1e32fb6sean5",
  "scope": "Web"
}

機能のアクティブ化

activateSPFeature アクションを使用して、SharePoint 機能をアクティブ化します。

JSON 値

  • featureId: アクティブ化する機能の ID (GUID) です。
  • scope: これは、機能が web またはsite に関連付けられているかどうかを示します。

イベント リストの作成を許可する Web スコープ機能を有効にするには (機能 ID 00bfea71-ec85-4903-972d-ebe475780106):

{
  "verb": "activateSPFeature",
  "featureId": "00bfea71-ec85-4903-972d-ebe475780106",
  "scope": "web"
}

フローをトリガーする

triggerFlow 動詞を使用して、カスタム フローを開始します。

ヒント

サイト スクリプトからの Power Automate の呼び出し」の記事では、エンド ツー エンドの例を示します。

JSON 値

  • url: フローのトリガー URL です。
  • name: フローの名前です。
  • parameters: フローに渡すパラメーターのオプション セットです。

 {
  "verb": "triggerFlow",
  "url": "<A trigger URL of the Flow.>",
  "name": "Record and tweet site creation event",
  "parameters": {
    "event": "Microsoft Event",
    "product": "SharePoint"
  }
}

地域設定を構成する

注:

このアクションは、チャネル サイトに対して自動的にブロックされます。

setRegionalSettings アクションを使用して、サイト (/_layouts/15/regionalsetng.aspx) の地域設定を構成します。

JSON 値

  • timeZone: タイム ゾーンを指定する数値です。 許容値の一覧については、SPRegsionalSettings.TimeZones を参照してください。
  • locale: カルチャ LCID を指定する数値です。 許容値の一覧については、「Microsoft ロケール ID の値」を参照してください。
  • sortOrder: 並べ替え順序を指定する数値です。 許容値の一覧については、SPRegionalSettings.Collation を参照してください。
  • hourFormat: サイトが 12 時間制または 24 時間制のいずれの形式を使用するかを指定します。

{
  "verb": "setRegionalSettings",
  "timeZone": 2, /* Greenwich Mean Time */
  "locale": 1050, /* Croatia */
  "sortOrder": 6, /* Croatian */
  "hourFormat": "24"
}

SharePoint グループにユーザー (プリンシパル) を追加します。

注:

このアクションは、チャネル サイトに対して自動的にブロックされます。

addPrincipalToSPGroup アクションを使用してユーザーとグループの追加を管理し、既定の SharePoint グループを選択します。 詳細については、SharePoint グループについてを参照してください。 このアクションは、ライセンス付与されたユーザー、セキュリティ グループ、および Microsoft 365 グループに対して使用できます。

JSON 値

  • principal: SharePoint グループに追加するプリンシパル (ユーザーまたはグループ) の名前を指定する必須のパラメーター。
  • group: プリンシパルを追加する SharePoint グループを指定する必須のパラメーター。

注:

このアクションは現在、閲覧者 (アクセス許可レベル: 読み取り)、メンバー (アクセス許可レベル: 投稿または編集 (サイト テンプレートに依存))、および、所有者 (アクセス許可レベル: フル コントロール) グループだけをサポートしています。 プリンシパルは、個別に追加する必要があります。

{
  "verb": "addPrincipalToSPGroup",
  "principal": "sean@contosotravel.onmicrosoft.com", /* user */
  "group": "Owners"
},
{
  "verb": "addPrincipalToSPGroup",
  "principal": "travelops", /* sg */
  "group": "Owners"
},
{
  "verb": "addPrincipalToSPGroup",
  "principal": "itexecutives", /* mail-enabled sg */
  "group": "Members"
},
{
  "verb": "addPrincipalToSPGroup",
  "principal": "Adventure@contosotravel.onmicrosoft.com", /* o365 group */
  "group": "Visitors"
}

ゲスト アクセスを管理する

注:

このアクションは、チャネル サイトに対して自動的にブロックされます。

setSiteExternalSharingCapability アクションを使用してゲスト アクセスを管理します。 詳細については、「SharePoint Online 環境の外部共有を管理する」を参照してください。

JSON 値

  • capability: サイト コレクションの共有オプションを指定するために必要なパラメーターです。 4 つのオプションは、DisabledExistingExternalUserSharingOnlyExternalUserSharingOnly、および ExternalUserAndGuestSharing です。

{
  "verb": "setSiteExternalSharingCapability",
  "capability": "Disabled"
}

関連項目