🌊

C# から Dataverse の API を呼ぶときに見るドキュメント

2022/01/20に公開

こういうのは毎回検索して毎回同じドキュメントに行きついてという作業をするので、ドキュメントについてまとめておきます。

基本的には、Azure AD へアプリ登録をして、それをつかってアクセストークンをとって API を叩くという流れになります。

Azure AD へのアプリ登録

これは以下のページのチュートリアルが参考になります。2022年1月現在では機械翻訳なので、手順があいまいに感じる部分はドキュメント上部の英語で読むを押して英語での記載内容を確認するのがいいと思います。

https://docs.microsoft.com/ja-jp/powerapps/developer/data-platform/walkthrough-register-app-azure-active-directory

基本的には上記のページを見るだけでいいのですが、ポイントだけまとめておきます。

API のアクセス許可で追加するのは APIs my organization uses から Dataverse で検索して出てくるものですが、実態は Dynamics CRM と同じみたいなので、以下の箇所にある Dynamics CRM を選んでも同じです。

Web API の呼び出し

C# のサンプルがあります。

https://docs.microsoft.com/ja-jp/powerapps/developer/data-platform/webapi/get-started-dynamics-365-web-api-csharp

上記ページからリンクが貼られているのですが .NET 5 版のサンプルがあるので、とっかかりとしてはこちらを参照するのがいいでしょう。

https://github.com/microsoft/PowerApps-Samples/tree/master/cds/webapi/C%23-NETx/QuickStart

上記サンプルプログラムの Program.cs を見ると以下のような行があるのですが、ここの <env-name><region> の部分に何を入れたらいいかですが、上記ドキュメントにも確認方法があるのですが毎回調べるので、それもメモっておきます。

Program.cs
string resource = "https://<env-name>.api.<region>.dynamics.com";

https://make.powerapps.com に移動して画面右上の⚙を選択して、Developer resources を選択します。

そうすると以下のように情報が表示されるので、そこにある Web API endpoint の値が、その値になります。

その他リンク

Web API のリファレンス

https://docs.microsoft.com/ja-jp/dynamics365/customer-engagement/web-api/about?view=dynamics-ce-odata-9

Microsoft (有志)

Discussion