鍋綿ブログ

C#・SharePoint・SharePoint Framework・Office365を中心に扱うブログです。

カスタムコネクタを使ってMicrosoft Flowで自作APIを実行しよう!

Microsoft Flowは複数のサービスを繋ぐ非常に便利なサービスです。
自作のAPIが実行できれば更に活用の幅が広がりますね。

既存のHTTPアクションでも認証無しのAPIなら叩けるのですが、
認証有りのAPIだと難しくなります。
そんな時はカスタムコネクタの出番です。

  • 自作APIからデータを取得してFlow + SharePointでExcel帳票作り
  • 自作APIのWebhookをトリガーにしてFlowを実行

など夢が広がりますね。
というわけでカスタムコネクタの作り方を紹介します。
API開発の部分は主軸でないので、今回はMicrosoft社の既存APIを使います。
Microsoft Graphを利用できるように設定していきましょう。

 

 

1.Azure ADへのアプリ登録

Azure管理ポータルにアクセスし、Azure Active Directory > アプリの登録 > 新しいアプリケーションの登録 と進みます。

f:id:micknabewata:20181008145824j:plain

新しいアプリケーションの登録

名前は任意で、種類はWeb アプリ/APIです。
サインオンURLはAPIのURLで、今回の例では https://manage.office.com/.default になります。

登録が終わったらアクセス許可を与えます。

f:id:micknabewata:20181008150452j:plain

アクセス許可の設定画面

今回はMicrosoft Graphの権限を追加しました。
次にキーを作ります。

f:id:micknabewata:20181008150627j:plain

期限2年間のキーを生成した

値はこの画面を抜けると2度と分からないのでメモしておいてください。

2.カスタムコネクタを一から作成

Flowの画面からカスタムコネクタを作成します。
右上歯車 > カスタム コネクタ > カスタム コネクタの作成
とやります。

f:id:micknabewata:20181008151037j:plain

カスタム コネクタの作成

2-1.全般

スキーマ / ホスト / ベース URLはAPIに合わせて入れます。他は任意です。
Graph API呼び出しの例だとこんな設定値になります。

f:id:micknabewata:20181008151350j:plain

全般タブ

2-2.セキュリティ

セキュリティタブでは、APIへの認証方法を決めます。
今回はOAuth2 ( Azure Active Directory利用 )なので以下の設定値になりました。

f:id:micknabewata:20181008151722j:plain

セキュリティタブ

Client id:Azure アプリケーション登録 設定画面の「アプリケーション ID」

Client secret:先ほどメモしたキー値

Login URL:固定値 (設定変更不可)

Tenant ID:固定値 (設定変更不可)

Resource URL:APIのURL ( 今回はhttps://graph.microsoft.com )

スコープ:アクセス許可のスコープ ( Graph APIのアクセス許可はリファレンス参照 )

リダイレクトURL:カスタム コネクタを保存すると自動で決定される (設定変更不可)

2-3.定義

新しいアクションやトリガーを追加していきます。
呼び出すAPIによりますので公式リファレンス等参照しながら設定してください。
以下はGraph APIの一例です。

f:id:micknabewata:20181008153025j:plain

Graph APIでドキュメントライブラリを取得する例

2-4.保存

ここまで終わったら「コネクタの更新」をクリックしていったん保存します。
すると「セキュリティ」タブでリダイレクト URLが表示されるようになります。
この値をコピーしておきます。

2-5.リダイレクト URLをAzure アプリケーション登録に反映

Azureの管理ポータルに戻って、コピーしたリダイレクト URLを
応答URLの設定に反映します。

f:id:micknabewata:20181008153450j:plain

応答URLに反映

2-6.テスト

Flowに戻ってテストタブを開きます。
テストが通ったら完成です。

f:id:micknabewata:20181008153629j:plain

テストが通ることを祈る

 

以上、参考になれば幸いです。