1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RPAAdvent Calendar 2024

Day 19

Blue PrismからZoom会議を設定する #blueprism #zoom

Last updated at Posted at 2024-12-18

やりたいこと

Blue Prismのプロセスから会議設定をしたい。
設定したあとにほしいものは、設定した会議のURLとパスコード。

手でやるときはこの画面でやります。
手で会議設定する画面.png

どうやるのか

公式のこのページ「Zoom APIの使用」の図が一発でわかるので転載します。
s2s-auth-flow-opt-640.png

  1. BPプロセスからZoom認証サーバへ、認証のリクエストを投げる
  2. アクセストークンが返ってくる
  3. そのトークンを使って、Zoom APIに、会議作成のリクエストを投げる
  4. 会議が作成されて、会議の情報が返ってくる

まずアプリを作成する

Zoom App Marketplace に行って、Server-to-Server-OAuth のアプリを用意します。
Zoomのアカウントは無料のやつでも会社のでもとりあえずオッケー。そのアカウントで会議を作成します。
サインインしたら右上のメニューから、Develop→Build Server-to-Server Appを選択。
マケプレメニュー.png
そんなにいろいろ設定するところはないのですぐできます。公開はしないでアクティベートだけしたらいいです。

アプリを作成したら、認証情報(アカウントID、クライアントID、クライアントシークレット)をメモっておきます。

Blue Prismで認証情報を作成する

クライアントID、クライアントシークレットを、OAuthクライアント認証で作成します。
MicrosoftTeams-image (1).png

認証情報取得アクションを作成する

認証情報を取得するのはいつものアレ。
この認証情報を投げてトークンを取得するのですが、投げる前にBase64エンコードする必要があります。
エンコードのVBOはDXにあります。 Utility - Encode Decode

アクションの中身はこうです。
VBOトークン生成の認証情報取得.png
変換するテキストの中身はこんな感じです。これをエンコードのステージの入力にします。
VBOトークン生成のエンコード前.png
出力引数は、「クライアントID:クライアントシークレット」をBase64エンコードしたテキストです。

トークン生成アクションを作成する

中身はこうです。
入力引数は

  • アカウントID:アプリを作成したときにメモったやつ
  • 認証情報取得アクションの出力引数であるテキスト(クライアントID:クライアントシークレット)

出力引数は生成したトークンが入っているコレクションです。
生JSONだと扱いにくいので、コレクションに変換してから返します。Utility - JSONは標準VBOです。
VBOトークン生成1.png

Utility - HTTPも標準VBO。これのPostアクションを使います。中身はこう。
投げるヘッダがBasicなので、Use Bearer TokenはFalseにしておきます。
URLは「https://zoom.us/oauth/token?grant_type=account_credentials&account_id={アカウントID}」
VBOトークン生成のPOST.png
HeadersはAuthorizationの1行だけ。設定する値は「Basic Base64エンコードしたテキスト」です。
VBOトークン生成のヘッダ.png

会議を作成する

材料は揃ったので、会議を作成します。
先述の認証情報取得やトークン生成のアクションは公開せず、このアクションだけ公開にしておきます。
入力引数は

  • アカウントID
  • 認証情報名
  • 会議タイトル:テキスト
  • 開始日時:日時
  • 所要時間(分):数値

アクションの中身はこんな感じ。
認証情報取得→トークン生成→開始日時をテキストに変換→リクエストを投げる
開始日時をテキストに変換するときの形は「yyyy-MM-ddTHH: mm:ss」。日と時の間に「T」が入ります。
VBO会議作成.png

Post JSONステージの中身はこう。
Bearer Tokenに、トークン生成アクションの出力で受け取ったトークンを設定し、Use Bearer TokenをTrueにします。
POST_JSON.png

Bodyの中身。各値を入力引数の値にReplaceします。

{
"topic": "<会議タイトル>",
"start_time": "<開始日時>",
"duration": <所要時間>,
"timezone": "Asia/Tokyo"
}

返ってきたJSONをコレクションに変換して、会議URLとパスコードを返します。
コレクションの項目で使いそうなのは以下。

  • start_url:ホストとして参加するときのURL
  • join_url:普通の参加者にお知らせするURLはこっち
  • password:パスコード。これは半角英数で、「H323_password」「pstn_password」のほうは数字です。H323とかpstnって何やねんというかたは、私も知識が薄くて上手に説明できないので、VoIPの説明とかをググってください。

これらを使って会議設定のプロセスを作成し、会議設定したあとに参加者にメールを送信するとかの処理を追加したらいいと思います。

終わりです

今回はタイトルと時間だけで設定しましたが、手で設定するときの項目はだいたい全部設定できます。
BodyのJSONに書くときの項目など、詳しくは公式資料を参照してください。→ Zoom API の概要

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?