从网站脚本调用 Power Automate

网站设计是一种强大的扩展性机制,用于自定义和标准化网站集的外观。 其中一个脚本操作 - triggerFlow - 可用于调用自定义解决方案,以应用我们本身不支持的配置。 Power Automate 流还可用于业务自动化 - 在这种情况下,与网站设计一起使用以跟踪网站创建!

本文介绍如何使用网站设计和 Power Automate 构建简单的网站目录。 每当使用此网站设计创建网站时,都会捕获网站的详细信息并将其写入 SharePoint 列表。

本文中的步骤对以下组件进行了说明:

  • SharePoint 列表
  • 网站设计和网站脚本
  • Power Automate

首先创建 SharePoint 列表,然后它将在 Power Automate 引用 - 这将由创建网站后应用的网站设计触发。

创建网站目录列表

首先设置列表,它将用于记录使用此网站设计创建的所有网站。

  1. 选择用于托管列表的网站集。

  2. 创建名为“网站目录”的新列表

  3. 配置以下字段:

    • webUrl(超链接或图片)
    • webDescription(单行文本)
    • creatorName(单行文本)
    • ccreatorEmail(单行文本)
    • createdTimeUTC(单行文本)

创建流

为了捕获网站创建事件并创建相应的列表项,你需要创建一个流 - 随后可以在网站设计的网站脚本中引用它:

  1. 转到 Power Automate 网站并登录,再选择页面顶部的“*+ 空白自动化创建”

  2. 单击下一个屏幕上的“跳过”

  3. 选择“搜索连接器和触发器”以选择触发器

  4. 搜索“请求”,然后选择“请求 - 当收到 HTTP 请求时[高级版]”注意请求触发器现在是“高级版”,因此需要额外的许可。

  5. 输入以下 JSON 作为请求正文:

    {
        "type": "object",
        "properties": {
          "webUrl": {
            "type": "string"
          },
          "parameters": {
            "type": "object",
            "properties": {
              "event": {
                "type": "string"
              },
              "product": {
                "type": "string"
              }
            }
          },
          "webDescription": {
            "type": "string"
          },
          "creatorName": {
            "type": "string"
          },
          "creatorEmail": {
            "type": ["string", "null"]
          },
          "createdTimeUTC": {
            "type": "string"
          }
        }
      }
    
  6. 选择“+ 新建步骤”

  7. 搜索“创建项目”,然后选择“SharePoint - 创建项目”。

  8. 输入已创建上述列表的网站地址。

  9. 选择在上一步中创建的“网站目录”列表。

  10. 为“标题”字段输入值 - 这将是每个列表项的相同值。 例如“Contoso 旅游:已创建新项目网站”。

  11. 对于列表表单中的每个字段,请从动态内容选取器中添加相应的元素。 完成后,操作应该类似于:

    “当收到 HTTP 请求时”流的屏幕截图,其中显示 URL、请求正文、“队列名称”和“消息”字段

  12. 选择“保存”。 此时将生成需要为网站脚本 triggerFlow 操作复制的 HTTP Post URL。

  13. 选择流中的第一步(“当收到 HTTP 请求时”),并复制 URL。

  14. 保存流。

创建网站设计

  1. 打开 PowerShell,并确保已安装最新的 SharePoint Online 命令行管理程序

  2. 使用 Connect-SPOService 连接到租户。

    Connect-SPOService -Url https://[yourtenant]-admin.sharepoint.com
    
  3. 现在可以获取现有网站设计。

    Get-SPOSiteDesign
    

    若要创建网站设计,首先需要创建网站脚本。 网站设计是引用一个或多个网站脚本的容器。

  4. 将以下 JSON 代码复制到剪贴板并进行修改。 将 url 属性设置为创建流时复制的值。 此 URL 如下所示:

    https://prod-27.westus.logic.azure.com:443/workflows/ef7434cf0d704dd48ef5fb6...oke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun
    
    {
      "$schema": "schema.json",
      "actions": [
        {
          "verb": "triggerFlow",
          "url": "[paste the workflow trigger URL here]",
          "name": "Record site creation event",
          "parameters": {
            "event": "site creation",
            "product": "SharePoint Online"
          }
        }
      ]
    }
    
  5. 再次选择 JSON 并将它复制到剪贴板。

  6. 打开 PowerShell 并输入以下代码,将脚本复制到变量中并创建网站脚本:

    $script = Get-Clipboard -Raw
    Add-SPOSiteScript -Title "Site Script to record site creation event" -Content $script
    Get-SPOSiteScript
    
  7. 将会看到包含一个或多个网站脚本的列表,包括刚刚创建的网站脚本。 选择你创建的网站脚本的 ID 并复制到剪贴板。

  8. 使用以下命令创建网站设计:

    Add-SPOSiteDesign -Title "Record site creation" -Description "The creation of this site will be recorded in the site directory list" -SiteScripts [Paste the ID of the Site Script here] -WebTemplate "64"
    

注意

Add-SPOSiteDesign cmdlet 将网站设计与团队网站相关联。 若要将设计与通信网站相关联,请使用 -WebTemplate "68"

验证结果

若要测试结果,请新建一个网站。 在 SharePoint 租户中,依次选择“SharePoint”>“创建网站”>“团队网站”。 (如果已禁用自助式网站创建,则需要从 SharePoint 管理中心创建网站。)

新建的网站设计应显示为设计选项。 请注意,网站设计在网站创建后应用。 如果正确配置了它,流将获得触发。 可以查看流的运行历史记录,以验证它是否正常运行。

另请参阅