Okta Workflowsチュートリアル:Spotify APIのコネクタを構築する(OAuth 2.0を使用)

作者について

Max Katz

Staff Developer Advocate, Okta Workflows

Max Katz is a Staff Developer Advocate for Okta Workflows. Max loves the no-code automation space and creating educational content. Before Okta, Max led the North America Developer Advocacy team at IBM. Before IBM, Max led developer advocacy for a cloud-based mobile app platform, Appery, helping it grow from zero to over 400,000 developers. Max regularly writes on his http://maxkatz.net blog. 

01 5月 2024 読了目安時間: ~

このブログはこちらの英語ブログの機械翻訳です。

このチュートリアルでは、Okta Workflows Connector Builderを使用して、OAuth認証を使用するSpotify APIのコネクターを構築する方法を説明します。

  • Spotify APIのコネクター
  • Spotify API用コネクターを構築する
  • リソース

Spotify APIのコネクター

OAuth認証を使用するため、Spotify APIのコネクタを構築します。このチュートリアルでは、OAuth認証を使用するコネクタをConnector Builderで作成する方法を説明します。

OAuth認証は高度なトピックです。Connector Builderを初めて使用する場合は、このシリーズの他の記事とチュートリアルを読んで完了してください。

API Connectorカードを使用してSpotify APIを呼び出す場合は、このKBをお読みください。

このKBでは、API Connectorカードを使用してOAuth接続を設定し、Spotify APIを呼び出す方法を説明します。

Spotify API用コネクターを構築する

このセクションでは、Connector BuilderでSpotifyへのコネクタを構築します。

Connector Builderは、Workflowsのフローとカード(アクション、関数)を使用してコネクターを構築します。

コネクターは、いくつかのフローで構成されています。

  • HTTPリクエストを作成するフロー。
  • サービスへの認証が機能していることを確認するためのフロー。
  • 1つまたは複数のアクションフロー。各アクションフローは、サービスのAPIエンドポイントを呼び出します。
  • サービスのAPIエンドポイントを呼び出すことを許可するカスタムアクションフロー(OpenWeather APIのコネクターの構築のチュートリアルを参照)。

まず、コネクタの構築を開始する前に、Spotifyアカウントが必要です。

Spotifyのアカウントとアプリを設定する

Spotifyアカウントを作成

  1. まだお持ちでない場合は、Spotifyアカウントを作成してください。

アプリを作成

認証フローを実装すると、アプリはSpotify APIを呼び出すためのアクセストークンを提供します。

  1. アプリを作成するには、ダッシュボードに移動し、Create an app(アプリを作成)をクリックします。
  2. Workflows Connector BuilderApp nameと入力します。
  3. Workflows Connector Builder appApp descriptionと入力します。
  4. Redirect URIs(リダイレクトURI) に http://localhost:8080 と入力します。この値は後で変更します。
  5. どの API/SDK を使用する予定ですか? については、 Web API を確認してください。
  6. Developer Terms of Service(開発者利用規約)チェックボックスをオンにします。
  7. 保存(Save)]をクリックして、アプリを作成します。

connector2 spotifyapp

Spotifyアプリ。

コネクタプロジェクトを作成する

 

Connector Builderを起動します

  1. 名前の横にあるメニューをクリックして、Connector Builderを起動します。

workflows apiconnector launch

Connector Builderを起動します。

コネクタプロジェクトを作成する

  1. 左側のパネルにある ➕ をクリックして、コネクタ プロジェクトを作成します。
  2. コネクタ名 Spotify と入力します。
  3. Connector description に Spotify connector と入力します。
  4. Saveをクリックして、プロジェクトを作成します。

connector2 spotifyconnector

Spotifyコネクタープロジェクト。

コネクターフローと認証

コネクターフロー

構築するコネクターには、3つのフローがあります。

  • httpHelper:コネクターのすべての認証とHTTPリクエストを管理します。
  • authPing:接続状態を確認します。
  • List User Albums:ユーザーの現在のSpotifyアルバムをリストします(APIドキュメント)。

認証とは、APIサービスへの安全な接続を作成するために必要なパラメータを定義する場所です。

エンドユーザーがサービスへの接続を作成すると、New Connection(新規接続)ダイアログに特定の認証の詳細が収集されます。

認証タイプは 3 つあります:

  • Basic:ユーザー名とパスワードを使用します。
  • OAuth 2.0: リソースへの限定的なアクセスをサード パーティに許可します。コネクタでは、Authorization Code または Client Credential の許可タイプを使用できます。
  • カスタム: APIキーまたはその他の認証プロセスを使用します。

SpotifyのOAuth接続を設定します。

Spotify API の認証を作成

OAuth接続を作成する

  1. 下にスクロールして、概要(Overview)ページで認証の設定(Set up authentication)をクリックして、接続を作成します。
  2. 認証タイプ(Auth Type) ]リストから[ Oauth 2.0 ]を選択します。
  3. グラントタイプ(Grant Type) ]から[ Authorization Code ]を選択します。
  4. https://accounts.spotify.comと入力します。Base URLに入力します。
  5. Authorize Pathに/authorizeと入力します。
  6. Token Path(トークンパス)に/api/tokenと入力します。
  7. Refresh Token Path(リフレッシュトークンパス)フィールドは空白のままにします。

connector2 spotifyauthconnection

接続の作成。

SpotifyアプリでリダイレクトURIを更新する

  1. リダイレクトURI(Redirect URI)の下のリンクをコピーします。これはコールバックURLです。
  2. 以前に作成したSpotifyアプリに戻ります。設定(Settings)をクリックします。
  3. ページの下部にある編集(Edit)をクリックします。
  4. リダイレクトURI(Redirect URIs)]セクションで、[削除(Remove)]をクリックして現在のURIを削除します。
  5. Connector BuilderURI を貼り付け、Add をクリックします。
  6. 保存(Save)]をクリックして変更を保存します。

クライアントIDとクライアントシークレットを設定します

  1. Connector Builderに戻ります。
  2. クライアントの所有者( Client Ownership )は Developer のままにします。
  3. SpotifyアプリからClient ID(クライアントID)をコピーし、接続のClient ID(クライアントID)フィールドに貼り付けます。
  4. Spotify アプリから クライアント シークレット をコピーし (クライアント シークレットの表示をクリック)、接続の クライアント シークレット フィールドに貼り付けます。

スコープを設定します

Get Current User’s Playlists API には、playlist-read-private スコープが必要です。スコープは、アプリがアクセスできるリソースを定義します。

connector2 spotifyauthconnection2

新しい接続の作成(続き)。

  1. Scopes(スコープ)セクションで、Add Scope(スコープを追加)をクリックします。
  2. Name (名前)に playlist-read-private と入力します。
  3. 右側には接続のプレビューが表示されます。Saveをクリックして接続を作成します。

connector2 spotifyauthconnection3

Spotify接続情報。

HTTPリクエストを作成するフローを作成する

httpHelperという名前のフローを作成します。

httpHelperは、コネクターの認証とHTTPリクエストを管理するシステムフローです。httpHelperフローは、ヘルパーフローであり、他のフローから呼び出すことができます。このフローには以下が含まれます。

  • 複数の入力。
  • リクエストのクエリ、ヘッダー、および本文情報を構築する機能カード。
  • API を呼び出すための HTTP – Raw Request カード。
  • いくつかの出力。

フローを作成する

  1. フロー(Flows)]ページを開きます。
  2. フローを作成するには、[+新しいフロー(+ New Flow)]をクリックします。
  3. 左上隅のUnnamedをクリックして、フローに名前を付けます。
  4. フロー名(Flow name) ]に「 httpHelper 」と入力します。
  5. Description This flow manages all authentication and HTTP requests for the connector と入力します。
  6. Save all data that passes through the Flow?(フローを通過するすべてのデータを保存しますか?)をオンにしますオプション。
  7. フローを保存するには、Save をクリックします。

フロー入力を設定する

  1. [Add event]をクリックし、[Helper Flow]を選択します。
  2. Helper Flow カードに次のフィールドを追加します:
    • relative_url(タイプ:Text)。
    • request_methodText)。
    • queryオブジェクト)。
    • headersオブジェクト(Object))。
    • bodyオブジェクト)。

入力があるhttpHelperフロー

connector2 httphelper 1

httpHelperフロー。

API URLを設定します

コネクタは複数のSpotifyエンドポイントをサポートできます。ベースURLは同じままで、相対URLが変更されます。2つの値を組み合わせて完全なURLにする必要があります。

  1. Helper Flow(ヘルパーフロー)カードの後にText – Concatenate(テキスト – 連結)カードを追加します。
  2. https://api.spotify.comと入力します。text 1フィールドに入力します。
  3. relative_urltext 2 フィールドに接続します。
  4. カードの出力フィールドの名前を変更します。
    • カードを編集するには、⚙️> Edit card(カードを編集)をクリックします。
    • outputフィールドの名前を変更するには、その✏️アイコンをクリックして、名前をfull_urlに設定します。

connector2 httphelper url

URLの設定。

ヘッダーを設定します

2つのヘッダーパラメータを設定する必要があります。

  • Content-Type: application/json
  • Authorization: Bearer access_token

設定した接続は、アクセス・トークンを取得します。Connectionフィールドには、最初のカードにAccess Tokenの値が表示されます。

Authorization(認証)ヘッダーを設定するには:

  1. Text – Compose(テキスト – 構成)カードを追加します。
  2. カードの中にBearerと入力します。
  3. 文字列 Bearer の後に Access Token を接続します(文字列間にスペースを追加します)。
  4. Composeカードのoutputフィールドの名前をbearerに変更します。

Content-Typeヘッダーを設定するには:

  1. Object – Constructカードを追加します。
  2. Content-Typeフィールドを作成し、値にapplication/jsonと入力します。
  3. Authorization(認証) フィールドを作成し、値として Compose(構成) カードから bearer(ベアラー) フィールドを接続します。
  4. outputフィールドの名前をheaders_authに変更します。

Content-TypeヘッダーとAuthorizationヘッダーを、Workflowsユーザーが提供する可能性のあるヘッダーとマージする必要があります。

  1. Object – Merge(オブジェクト – マージ)カードを追加します。
  2. 最初のカードのheadersフィールドをobject 1フィールドに接続します。
  3. Constructカードからheaders_authobject 2フィールドに接続します。
  4. 出力(output)]フィールドの名前をmerged_headersに変更します。

connector2 httphelper merge

ヘッダーカード付きのhttpHelperフロー。

API呼び出しを行います

  1. HTTP – Raw Request カードを追加します。
  2. 次の接続を作成します。
    • full_urlRaw Request カードの url フィールドに追加します。
    • request_methodRaw Requestカードのmethodに。
    • merged_headersRaw Request カードの headers フィールドに追加します。
    • 最初のカードのqueryqueryフィールドに接続します。
    • body body フィールドに。

フロー出力を設定します

  1. HTTP – Raw Request(HTTP – ローリクエスト)カードからstatusCode(ステータスコード)headers(ヘッダー)、およびbody(ボディ)フィールドをFlow Control – Return(フロー制御 – リターン)カードに接続します。
  2. body フィールド タイプを Object に変更します。

最終的なhttpHelperフロー:

connector2 httphelper final 1

httpHelperフロー。

フローをテスト

  1. 実行(Run)]をクリックしてフローをテストします。
  2. Test Connection リストから New connection を選択します。
  3. Name(名前) フィールドに Spotify と入力します。
  4. Description(説明) フィールドに Spotify connection と入力します。
  5. Create(作成)をクリックします。Spotifyにサインインし、作成したアプリ(Workflows Connector Builder)がプレイリスト情報にアクセスできるように求めるポップアップが表示されます。
  6. relative_url フィールドに /v1/me/playlists と入力します。
  7. request_method(リクエスト方法) フィールドに GET と入力します。
  8. 実行(Run)]をクリックしてフローをテストします。

有効な接続を確認するフローを作成する

_authPingという名前のフローを作成します。_authPingフローは、プラットフォームがAPIを呼び出して有効な認証を確認するために使用するシステムフローです。

このアクションは、コネクターを最初に認証するとき、新しいコネクターを追加するとき、またはフローを開くときに、検証チェックとして機能し、実行されます。

フローを作成する

  1. コネクタープロジェクトビューに戻ります。
  2. Flows(フロー)ページから+ New Flow(+ 新規フロー)をクリックします。
  3. イベントの追加(Add event)をクリックし、Authpingイベントを選択します。
  4. フローを保存するには、左上隅のUnnamed(名前なし)をクリックします。
  5. 名前(Name) ]に「 _authping 」と入力します。
  6. 説明にConnection health checkと入力します。
  7. Save all data that passes through the Flow?(フローを通過するすべてのデータを保存しますか?)をオンにしますオプション。
  8. [保存]をクリックします。

connector2 authping

_authpingフロー。

接続ヘルスチェックカードを追加します

  1. Add function をクリックし、Error Handling – If Error カードを選択します。
  2. Try(トライ)ブロック(自動的に選択)で、➕、次にfunction(関数)(計算機アイコン)をクリックし、Flow Control – Call Flow(フロー制御 – コールフロー)カードを選択します。
  3. Call Flowカードで、Choose Flowをクリックします。
  4. httpHelperフローを選択し、Choose(選択)をクリックします。

フローは次のようになります:

connector2 authping callflow

_Call Flowカードを使用したauthpingフロー。

このフローは、httpHelperフローを呼び出して、サービスへの接続が機能しているかどうかを確認します。認証を必要とするAPIエンドポイントを使用する必要があります。

:Okta Workflowsチームは、応答サイズが最小のリクエストを推奨します。たとえば、一部のAPIには、ログインしているユーザーに関する情報を取得するための/meエンドポイントがあります。

Spotify APIには、このフローで使用できる/meエンドポイントがあります。

Call Flow カードの構成を完了します:

  1. relative_url /v1/me と入力します。
  2. request_method GET と入力します。
  3. queryheaders、およびbodyフィールドは空白のままにします。
  4. 最初のカードのConnectionフィールドをCall FlowカードのConnectionフィールドに接続します。

connector2 authping callflow2

/meエンドポイントの呼び出し。

Call Flow(コールフロー)カードに出力を作成するには:

  1. Click or drag to create(クリックまたはドラッグして作成)エリア内をクリックし、次の出力フィールドを作成します:
    • statusCode数値(Number)型)。
    • headersオブジェクト(Object))。
    • bodyオブジェクト)。

connector2 authping callflow3

出力付きの Call Flow カード。

次に、接続が機能している場合のメッセージと、接続が機能していない場合のメッセージを設定します。

動作する接続のメッセージを設定するには:

  1. If Errorカード内のCall Flowカードの後の➕をクリックし、Flow Control – Assignカードを選択します。
  2. メッセージ(message) ]フィールドを追加し、[ Control – Assign ]カードで The connection is successful 値に設定します。

If Error(エラーの場合)カードの出力を作成します。

  1. If Errorカード(右上隅)でView Outputsをクリックします。カードは、カードの出力を定義するセクションを開きます。
  2. フィールドボックス内をクリックして、2つの出力を作成します。
    • statusCode
    • message
  3. 次の接続を作成します。
    • statusCodeCall FlowカードからstatusCodeの最初のサブフィールドに。
    • Assignカードからmessagemessageの最初のサブフィールドに接続します。

カードは次のようになります。

connector authpingcallflowmessageokey

接続が機能しているときにメッセージを設定します。

接続が機能していない場合にメッセージを設定するには:

  1. Try]と表示されているリストを使用して、[If Error]カードの[If Error]ブロックに切り替えます。
  2. Errorオブジェクトに2つのフィールドを追加します。
    • statusCode (タイプText)。
    • descriptionText)。
  3. [エラーの場合]ブロック内の[エラー]オブジェクトの右側にある➕をクリックし、[テキスト - 連結]カードを追加します。
  4. 次の接続を作成します。
    • Error オブジェクトの descriptiontext 1 フィールドに追加します。
    • text 2 フィールドに: (コロン)を入力します。
    • クリックして3番目のフィールドを作成し、Errorからmessageを接続します。

次に、メッセージをIf Errorカードの出力に接続します。

  1. If Error]カードで[出力の表示(View Outputs)]をクリックします。
  2. 次の接続を作成します。
    • Error]の[statusCode]を[statusCode]の2番目のサブフィールドに。
    • outputからConcatenatemessageの2番目のサブフィールドに。

カードは次のようになります。

connector authpingcallflowmessagenotokey

接続が機能していないときにメッセージを設定します。

フロー出力を設定します

Flow Control – Return Statusカードには、workingserviceResponseの2つのフィールドがあります。このフローで利用可能な情報を使用して、これらのフィールドを設定します。

  1. If Errorカードの後の➕をクリックして、True/False – Compareカードを追加します。
  2. If Errorカード出力から statusCodevalue aフィールドに接続します。
  3. value b フィールドに 200 と入力します。
  4. result出力フィールドの名前をworkingに変更します。

connector authpingcallflowcompare

接続ステータスコードの設定。

APIへの呼び出しが成功した場合(200)、接続は機能しています。

  1. True/False – Compareカードの後ろの➕をクリックし、Object – Constructカードを追加します。
  2. Constructカードに2つのフィールドを作成します。
    • statusCode (タイプText)。
    • bodyテキスト(Text))。
  3. 次の接続を作成します。
    • If Error]カード出力の[statusCode]を[Construct]カードの[statusCode]フィールドに。
    • If Error カードの出力の messageConstruct カードの body フィールドに追加します。
  4. Constructカードのoutputフィールドの名前をserviceResponseに変更します。

connector authpingcallflowconstruct

接続ステータス応答の設定。

フロー出力を設定するには:

  1. CompareカードからのworkingReturn Statusカードのworkingフィールドに接続します。
  2. ConstructカードからのserviceResponseを、Return StatusカードのserviceResponseフィールドに接続します。

完全なフロー:

connector2 authping final

完全な_auththingフロー。

フローをテスト

  1. フローを保存します。
  2. Run(実行)をクリックします。
  3. Spotify接続を選択し、Run(実行)をクリックします。

ユーザーのアルバムを一覧表示するアクションを作成する

このセクションでは、現在のユーザーのプレイリストを取得(Get Current User’s Playlists)エンドポイントのコネクターアクションを作成します。

フローを作成する

  1. コネクタのプロジェクトビューに戻ります。
  2. + New Flowをクリックして、新しいフローを作成します。
  3. 左上隅のUnnamedをクリックして、フローに名前を付けます。
  4. Flow name(フロー名) に List Current User Albums と入力します。
  5. Description List current user Spotify albums と入力します。
  6. Save all data that passes through the Flow?(フローを通過するすべてのデータを保存しますか?)をオンにしますオプション
  7. Saveをクリックしてフローを保存します。

フローをアクションとして構成する

アクションフローは、サービスAPI呼び出しを行います。

このフローをアクションフローとして設定するには:

  1. イベントの追加(Add event)]、次に[アクション(Action)]イベントタイプをクリックします。

現在のユーザーのプレイリストを取得(Get Current User’s Playlists)エンドポイントには入力がないため、アクションフローには入力は必要ありません。

フローは次のようになります:

connector2 action listalbums2

List Current User Albumsアクション。

Spotify APIを呼び出します

このステップでは、Spotify APIを呼び出します。

  1. Flow Control – Call Flow(フロー制御 – フローの呼び出し)カードを追加します。
  2. [フローの選択]をクリックし、httpHelperフローを選択して[選択]をクリックします。
  3. relative_url フィールドに /v1/me/playlists と入力します。
  4. request_method GET と入力します。
  5. 最初のカードのConnectionフィールドをCall FlowカードのConnectionフィールドに接続します。
  6. Call Flow カードに 3 つの出力を作成します:
    • statusCode数値(Number)型)。
    • headersオブジェクト(Object))。
    • bodyオブジェクト)。

connector2 action callflow

Call Flowカード。

フロー出力を作成します

Flow Control – Return Outputs カードに次の出力を作成します:

  1. 出力の追加(Add Outputs)をクリックします。
  2. Add group(グループを追加)を開き、Add Static Group(静的グループを追加)を選択します。
  3. 3つの出力を作成します。
    • Status Code (タイプNumber)。
    • Headers (Object)。
      • 空のキーエントリを削除します。
    • Bodyオブジェクト)。
      • 空のキーエントリを削除します。
  4. Applyをクリックして出力を保存します。
  5. Call Flow(フローの呼び出し)カードからReturn Outputs(出力の返却)カードにデータを接続します。
    • statusCodeStatus Codeフィールドに。
    • headersHeaders フィールドに追加します。
    • bodyBodyフィールドに。

フローの最後は次のようになります。

connector2 アクションの最終

完全なList Current User Albumsアクションフロー。

フローをテスト

  1. 実行(Run)]をクリックしてフローをテストします。
  2. Test Connection(接続のテスト) リストから Spotify 接続を選択し、Run(実行)をクリックします。

コネクターをデプロイする`

フローをオンにします

フローは、デプロイする前にオンにする必要があります。

  1. フロー(Flows)ページに戻ります。
  2. 3 つのフローをオンにします。

コネクター設定を更新します

このセクションでは、設定に追加情報を入力します。

  1. メインプロジェクトビューに戻ります。
  2. 概要(Overview)]ページを開きます。
  3. 設定セクションで 編集をクリックします。
  4. ダウンロードして、コネクターのSpotifyアイコンを設定します。
  5. 必要に応じて、Accent Color(アクセントカラー)を変更します。
  6. User Documentation URLSupport Contact Emailの情報を入力します。
  7. Save(保存)をクリックして、すべての変更を保存します。

connector2 spotify settings

コネクターの設定。

コネクタをデプロイする

コネクターをデプロイするには:

  1. Deploymentタブに切り替えます。
  2. Create test versionをクリックします。
  3. 作成したテストバージョンの[Actions]の下にある3つの縦の点を選択し、[Deploy Version]を選択します。

Private deploymentセクションにデプロイされたコネクタが表示されます。

connector2 spotify deploy

Connector deployment.

フローでコネクターを使用する準備ができました。

フローでのコネクタの使用

このステップでは、フローでコネクタアクションを使用します。

connector2 spotify addapp

Spotifyコネクター。

カードを追加

connector2 spotify connector action

Spotify コネクタ アクション。

  1. Workflowsで新しいフローを作成します。
  2. Add app action(アプリのアクションを追加)をクリックし、Spotifyコネクターを選択します。検索することもできます。
  3. Spotify – List Current User Albumsアクションを選択します。

接続を作成

  1. + New Connectionをクリックし、手順に従ってSpotifyの接続を作成します。

connector2 spotify flow card

Spotify – List Current User Albumsアクション。

テスト

  1. カードまたはフローをテストします。

connector2 spotify flow test

フローのテスト。

おめでとうございます

よくできました!

認証にOAuthを活用するSpotifyのコネクタを構築しました。

リソース

📚 Okta Workflows でのカスタム コネクタの構築、ビデオ シリーズ

📖 Okta Workflows Connector Builder documentation

🍫 毎週のコミュニティオフィスアワー中にWorkflowsスペシャリストから支援を受けてください。

📺 Workflowsビデオから学びましょう。

🛟 サポートからのヘルプ: Workflowsトピックについて話し合うか、質問をする。

🙋🏻‍♀️ コミュニティからサポートを得る:MacAdmins Slackの#okta-workflows channelに参加してください。

作者について

Max Katz

Staff Developer Advocate, Okta Workflows

Max Katz is a Staff Developer Advocate for Okta Workflows. Max loves the no-code automation space and creating educational content. Before Okta, Max led the North America Developer Advocacy team at IBM. Before IBM, Max led developer advocacy for a cloud-based mobile app platform, Appery, helping it grow from zero to over 400,000 developers. Max regularly writes on his http://maxkatz.net blog. 

アイデンティティ施策を推進