Power Apps アプリからカスタム コネクタを使用する

注意

このトピックは、Azure Logic Apps、Power Automate、および Power Apps でのカスタム コネクタの作成および使用に関するチュートリアル シリーズの一部です。 カスタム コネクタの概要 を必ず読んで、プロセスを理解してください。

このトピックでは、前のトピックで作成したカスタム コネクタを使用する基本的なアプリを構築します。 アプリはテキスト入力を受け取り、カスタム コネクタを使用して Cognitive Services Text Analytics API を呼び出します。 コネクターはテキストのセンチメント スコア(0 ~ 1) を返し、アプリはそれをパーセントで表示します。 次の図は、次の完了したアプリを示しています。

完了した感情分析アプリ

前提条件

アプリを作成してカスタム コネクタを追加する

最初に、空白からアプリを作成し、前のトピックで作成したカスタム コネクタに接続します。

  1. make.powerapps.com で、空白から開始 > 電話アプリのアイコン(電話) > このアプリの作成 の順に選択します。

    空白から開始

  2. アプリのキャンバスで、[connect to data] (データに接続する) を選択します。

  3. データ パネルで、前のトピックで作成した接続 ("SentimentDemo" など) を選択します。

  4. アプリに Sentiment Analysis という名前を付けて保存します。

アプリにコントロールを追加

アプリの UI を構築して、テキストを入力し、そのテキストを API に送信して、応答を取得できるようにします。

  1. 長方形のアイコンをタイトル バーとして追加してから、「感情分析」というラベルを追加します。

    タイトル バーを追加する

  2. ラベル "テキストを入力" を追加して、[スコアを取得] をクリックし、テキスト入力コントロールを追加します。

    ラベルとテキスト入力を追加する

  3. "スコアを取得" というテキストのボタンを追加します。

    ボタンを追加する

  4. "センチメントスコアは" というラベルを追加します。 次のセクションでは、このラベルを完成させるための数式を追加します。

    ラベルの追加

動作を促進する数式を追加する

データ接続と UI を設定したら、アプリの動作を駆動する Power Apps の数式を追加します。 数式はカスタム コネクタを介して API を呼び出し、結果を コレクション (表形式の変数) に格納し、フォーマットされた結果をアプリに表示します。

  1. 作成したボタンを選択して、ボタンの OnSelect プロパティをコネクタの名前 (ピリオドを含む) に設定します。

    SentimentDemo.
    

    Power Apps によって DetectSentiment のオートコンプリート オプションが提供されます。カスタム コネクタによってこれが使用可能になるためです。

  2. ここで、ボタンの OnSelect プロパティを次の数式に設定します。

    ClearCollect(sentimentCollection, SentimentDemo.DetectSentiment(
        {id:"1", language:"en", text:TextInput1.Text}).documents.score)
    

    次の数式は、API からセンチメント スコアを取得し、コレクションに格納します。

    1. この数式は、カスタム コネクタによって公開された 3 つのパラメーター、idlanguagetext を使用して、DetectSentiment 関数を呼び出します。 数式の最初の 2 つの右側の値を指定し、テキスト入力コントロールから Text の値を取得します (アプリの別の場所から最初の 2 つの値をプルすることもできます)。

    2. この関数は、送信するドキュメントごとに score を返します。この例では、一度に 1 つのドキュメントを送信します。 スコアの範囲は 0 (負) から 1 (正) です。

    3. 次に、数式は ClearCollect 関数を呼び出して、既存の値を sentimentCollection から削除し、値を score から追加します。

  3. 作成したラベルを選択して、ラベルの テキスト プロパティを次の数式に変更します。

    "The sentiment score is " & Round(First(sentimentCollection).score, 3) * 100 & "%"
    

    次の数式は、コレクションからセンチメント スコアを取得し、フォーマットして表示します。

    1. First() 関数は、sentimentCollect の最初 (かつ、この場合では唯一) のレコードを返し、そのレコードに関連付けられた score フィールド (唯一のフィールド) を表示します。

    2. Round() 関数はスコアを 3 桁に丸めます。数式の残りの部分では、結果をパーセンテージとしてフォーマットし、コンテキストの情報を追加します。

アプリをテストする

完成したアプリを実行して、期待どおりに機能することを確認します。

  1. 選択 アプリを実行する クリックまたはタップしてアプリを実行します。

  2. テキスト入力コントロールにフレーズを入力し、スコアを取得 を選択します。 センチメント スコアは数秒以内に表示されます。

完成したアプリは次の図のようになります。

完了した感情分析アプリ

単純なアプリですが、カスタム コネクタから Cognitive Services を呼び出すことで強力な機能が得られました。

次の手順

組織内でコネクタを共有したり、組織外のユーザーが使用できるようにコネクタの認定を受けます。