【PowerApps】Power AutomateでZoom APIを使ってみる

API

はじめに

ZoomAPIを触ります
PowerAppsフローで動かすところまで

必要なもの
・Zoomアカウント
・PowerAppsライセンス

2021/2/22 追記
※お金を気にしなければAzure Functionを使ったほうが良い
※トークンを自動生成できるAPIを実装するには、スクリプト言語を使用しないと難しい
※Pythonの場合は以下が参考になる
https://qiita.com/nanbuwks/items/ed74a76a0f294c0bf4ed

Zoom API

最近はやりのZoom API

ほかのアプリケーションからミーティングを開催したり、

録画した動画をダウンロードしたり何かと便利なAPIです。

まずはZoomマーケットプレイスの[Develop]→[Build App]を選択し、
以下のページへ移動します

App Marketplace

初めての人はJWTの[Create]ボタンを押します

OAuthの方もありますが、こちらは少しややこしいのでスルーします

API Key、API Secretが表示されます

今回重要なのはこれらを組み合わせてできるトークンです

JWT Tokenはあとで必要になるので控えておきましょう

PowerApps カスタムコネクタ

APIの呼び出しはいくつか方法がありそうですが

今回はカスタムコネクタを使います。

[カスタムコネクタ]→[カスタムコネクタの新規作成]→[一から作成]

Zoom APIはあくまでRESTとして使うのでインポートはしません

カスタムコネクタは全般→セキュリティ→定義→テストの順で作成します。

まずは[全般]ですが、以下の内容を入力します

ホスト:api.zoom.us
ベースURL:/v2

次の[セキュリティ]は以下を設定します

パラメータのラベル:API Key(なんでもよい)
パラメータ名:Authorization

ヘッダーのAuthorizationはキー情報が入ってくる重要なラベルなので
入力間違いには注意してください

次は[定義]です。以下を入力して[コネクタの作成]をしましょう

要求(リクエスト):https://api.zoom.us/v2/users

最後は[テスト]です

新しい接続を追加する必要があります

ここでようやく最初に作成したJWT Tokenの出番です

API Keyには「Bearer <JWT Token>」を入力します

API Key:Bearer <先ほど取得したJWT Token>

接続が作成できたら[カスタムコネクタ]→[zoom-connector(作成中)]に戻りましょう

では[テスト]→[テスト操作]を実行しましょう

invalid CORS requestエラー、、

はい、なぜかエラーになってしまいました。
これはどうやらPowerAppsのバグの様です

解決方法はフローに組み込んでしまうこと

ということで[フロー]→[新規作成]で以下のように

先ほど作ったzoom-connectorのList Userを適当に

手動トリガー(上の指マーク)と
データ操作[JSON](下の{/}みたいなマーク)
で挟んであげましょう

JSONの解析の
コンテンツは動的な「body」
スキーマは以下のJSONでOKです

{
  "type": "object",
  "properties": {
    "page_count": {
      "type": "integer"
    },
    "page_number": {
      "type": "integer"
    },
    "page_size": {
      "type": "integer"
    },
    "total_records": {
      "type": "integer"
    },
    "users": {
      "type": "array"
    }
  }
}

[保存]をしたら右上の[テスト]を実行します

テスト実行!!

Userデータが取れました!!

ちなみにここで取得したidはほかのリクエストでよく使用するUserIDなので

今の処理が成功すれば芋づる式にほかの処理もうまくいくはずです

まとめ

途中のテストバグはフローに組み込むことで回避しましたが、

これに限らず、PowerAppsではバグがやや出やすい現状です

個人的にはこういう開発ツールは結構気に入っているので
microsoftさんにはもう少し頑張ってもらいたいと思います

Bearerトークンの作成とか自前でできるようにしてくれないかなぁ、、

コメント

タイトルとURLをコピーしました