Power Automate SPOコネクタでForms APIなどが利用できなくなっています(2024年9月中旬ごろから) 状況や代替え案など

はじめに

今年の9月18日頃から発生している事象ですが、従来Power Automate(クラウドフロー)でSharePointコネクタのHTTP要求アクションで Microsoft FormsのAPIを利用出来ていたのですが、現状利用できなくなっています。また、その他API(TeamsやYammerなど)も同時期に利用できなくなったという投稿を確認しています。

NOTE前提としてこの実装は元々サポート対象外のものとなります。(SPOを操作するためのコネクタのため)
ですので、使えなくなった点についてはしょうがないという事になります。

ただ有識者の方々が(その前提の上で)以前よりご紹介された便利な実装として、利用されていた方も多くいらっしゃると思いますので、現時点で確認した状況や対応策などを掲載しています。

TIPS★公式ページ上にて明示的にSharePoint以外のAPIはサポートされない旨の更新を確認いたしました。
Power Automate での SharePoint の HTTP 要求フローの送信アクションの操作 | Microsoft Learn

SPOコネクタのHTTP要求でForms API呼び出しが以前は出来ていた

前提としてPower AutomateのFormsコネクタはトリガーと回答取得アクションの2つしかなく、この情報には回答者や回答内容くらいの情報しかなく、フォーム名や質問の詳細などが取得できません。特にクイズの場合に使用したいスコアが含まれていません。

Microsoft FormsのAPIは公式ドキュメントが現状も公開されていない状況ですが、APIとしては存在しており利用すること自体は可能です。(ただしサポートはされないと思われる)
数年前に日本の元MVPのHIROさんやドラーニさんが記事や動画で、SPOコネクタのHTTP要求を使用してForms APIを操作できるという方法をご紹介されています。

ドラーニさんの記事では手動でエクセルファイルをDLする際のURLを実行して回答ファイルを作成、
そこからクイズの回答を取得できるという天才的な発想であり、かつ、通常ライセンス範囲のSPOコネクタで実装できるというとても有用な実装でした。

従来はスコアが取れないためフロー内で同じような採点ロジックを実装する必要があったのですが、この方法を使えばフローでの採点ロジックは不要となり2重管理もなくなるというもので、動画のコメントにもあるように多数のユーザーが素晴らしい!として利用されていた実装となります。

HIROさんの当時の記事:Forms APIを呼び出してフォーム名などを取得できる
Power Automateでフォームの質問の詳細を取得 – MoreBeerMorePower (hatenablog.com)

QiitaでのForms APIに関する記事:
Microsoft Forms API 現時点でのまとめ #PowerAutomate – Qiita

ドラーニさんの当時の動画:Forms APIを使って同期ファイルの作成を行いクイズのスコアを取得する実装

SPOコネクタでForms APIを呼び出し、Forms APIのエクセルDL操作もエミュレートしファイル作成

2024年の9月中旬ごろから利用できなくなった(認証エラー)

こちらの実装ですが、残念なことに今年の9月中旬ごろから各地域で利用できなくなっています。
自身も9/18にエラーとなる事を確認しました。認証出来ていない系のエラーです。
ドラーニさんの動画でもコメントが上がっていますし、フォーラムでも同様の事象が各地で同時期に報告されています。

フォーム送信のスコアまたは結果を取得するための Query Forms API – Microsoft コミュニティ ハブ

9/18頃から利用できなくなったと報告有り。みなさん同じ事象

HTTP 要求を SharePoint に送信する – エラー 400 – Microsoft コミュニティ

Forms API呼び出しで400エラーとなる。DLファイル作成はログインしていないエラーとなる

有償のHTTP With EntraIDコネクタであれば利用可能だった

上記について自身でも検証しましたが、有償ライセンスで利用可能なHTTP With EntraIDコネクタであれば、同じForms API呼び出しの記載を行えば利用が出来ました。また、試してはいませんが、Microsoft Forms APIを使用するアプリケーション登録を行いHTTPコネクタで呼び出す場合も同様に利用できると思われます。上記のフォーラムでも同様の記載がありました。

※コネクタのURLはいずれも https://forms.office.com/ を指定

SPOコネクタをHTTP With EntraIDコネクタへ置き換え→正常動作する

同時期にSPOコネクタからの他のAPI呼び出しも出来なくなったとの投稿あり(Yammer、Teams)

同時期に他のAPI呼び出しをする実装についても同様の認証エラーとなるとの投稿がありました。
YammerやTeamsのAPIについて利用不可となったという有識者のポストです。

どうやらこのタイミングでSPOコネクタのHTTP要求アクションで他のAPIを呼び出すこと自体が出来なくなったと思われます。(おそらくは認証関連で)

自分のForms API関連のポスト

SharePoint REST APIの認証の仕方が変わっている様子(関連あるかもしれない)

からめもさんが投稿されている以下では、SPO のREST API呼び出し時のアクセストークンの仕様が同時期に変わっていたとのことです。
Power Automateでの認証についても同様に裏側で変更がかかり他APIへアクセスできなくなったのかもしれません。
このあたり関連性は確認できていませんのであくまで予測の範囲です。(関係ないかもしれません)

SharePoint REST API を呼び出すためのアクセス トークンの変更について (zenn.dev)

★公式ページに明示的に他APIはサポートされないと更新あり


こちら、10/16の記事投稿時点では確認出来てなかったのですが、公式ページに明示的に他のAPIの利用はサポートされない旨、その場合はHTTP with Microsoft Entra ID を利用する必要があると明記されておりました。※10月上旬に更新
Power Automate での SharePoint の HTTP 要求フローの送信アクションの操作 | Microsoft Learn

元々サポート外の利用となりますので、利用できなくなった点はやむなしですね。

Formsのクイズのスコア取得が厳しくなりました

サポート外のためしょうがないのですがドラーニさんがご紹介されたFormsクイズのスコアを取得することが出来なくなっています。これもやむなしですね。
上記の代替え案として当初アップデートでクラウド同期されるようになったクイズの回答ファイルの方から取得しようと想定もしましたが、新しいFormsの同期ファイルの仕様変更(手動で開かないと同期されない仕様となった)があったためその方針も難しくなりました。

現時点ではクイズの回答を取得するには以下の方針しかないように思います。
・ HTTP With EntraIDコネクタを使用して実装する (ただし有償ライセンスが必要)
・ フロー内で同様の採点ロジックを実装する(2重管理となる)

他の解決策があればぜひご共有ください。m(__)m
Forms同期ファイルの新しい仕様については別途記事にしていますので以下の関連記事よりご参考ください。

おわりに

ということでSPOコネクタHTTP要求での他API呼び出しについての利用不可について記事にしました。
もともとサポート外の実装のため(通常ライセンス範囲で)利用できなくなった点についてはいたしかたなしとなります。こういったテクニックを使った実装を行う場合はその点を理解した上で利用する必要がありますのでご留意ください。

関連記事



この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

ヨウセイ

ヨウセイ

一般職からSharePoint、C#、.NET系技術者へ、そこからPower App、Power Automate技術者へと転身。 ワンランク上のおっさんはPower Appsでシステム開発が出来る〜! qiitaや自社HPでも技術ブログを書いていました。

関連記事

コメント

この記事へのコメントはありません。

CONTENTS