0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PowerAutomateでSPOサイトページを更新し公開する

Posted at

Office365(Microsoft365)で、ユーザーオペやスケジュールをトリガーに自動起動する連携処理を実装するのに便利なPowerAutomateですが、実際に業務の中で使おうとするといろいろな制約があります。
そのような制約を克服するため思いついたり調べたりした内容をご紹介していこうと考えています。

Background

SPOサイトのページは内部的にSPOリストの項目として管理されているようです。
これは特に調べたわけでもなく、作業中の手違いで気が付きました。調べてもそのようなことを説明してくれている記事は見つかりませんでした。

それはそれとして。

私の職場ではSPOサイトの1つであるTeamsチームサイトをポータルサイトとして活用しています。
そのサイトで公開しているページやニュースたちも、SPOリストの項目としてPowerAutomateからいろいろ操作できれば、サイト管理業務の改善ができそうです。

Problem

しかしPower AutomateでSPOリストを参照更新するアクション(ステップ)を使う時、アクセス可能なリストの一覧を示すプルダウンに、サイトのページを管理するリストは登場しません。

さあ、早くも雲行きが怪しくなってきました。。

image.png

Solution

あれこれ調べた結果はこうです。

まず項目を取得する場合、「複数の項目の取得」アクションの「リスト名」で「カスタム値の入力」を選び「サイトのページ」と記載します。ちょっと違和感がありますが、ちゃんと動きます:

image.png

取得した項目を更新するには、RESTfulAPIを利用しましょう。予め準備された「項目の更新」よりもシンプルに、更新が必要な項目だけ指定できます:

image.png

「URL」欄には以下の要領で入力をします。リスト項目ID以外は固定です:

_api/web/lists/GetByTitle('サイトのページ')/items(<リスト項目ID>)

「ヘッダー」欄の内容は固定です:

キー
Content-Type application/json;odata=verbose
X-HTTP-Method MERGE
IF-MATCH *

「ボディ」欄には以下の要領でJSON文字列を指定します:

{
    "__metadata": {
        "type": "SP.Data.SitePagesItem"
    },
    // ここに更新したいプロパティと値のペアを列挙
}

SPOでページやニュースを作成された方ならご存知かと思いますが、サイトのページは更新して保存(下書き保存)しただけでは、他のユーザーも見るページの見栄えに変更が反映されません。

そこで「公開」(Publish)します:

image.png

「URL」欄には以下の要領で入力をします。リスト項目ID以外は固定です:

_api/sitepages/pages(<リスト項目ID>)/publish

「ヘッダー」欄の内容は固定です。X-HTTP-Methodの値が「POST」であることに注意をしてください:

キー
Content-Type application/json;odata=verbose
X-HTTP-Method POST
IF-MATCH *

「ボディ」欄には以下の要領でJSON文字列を指定します。ここでもJSONの内容、とくに"__metadata" の値が変化していることに注意をしてください:

{"__metadata":{"type":"SP.Publishing.SitePage"}}

以上でサイトのページを更新し、公開することができます。

おめでとうございます。

これでSPOサイトのページをいろいろなトリガーでもって自動更新できるようになりますね。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?