web-dev-qa-db-ja.com

MicrosoftボットフレームワークでRESTAPI呼び出しを行う方法

ユーザーの入力を受け取り、それをサードパーティのREST API呼び出しのIDとして使用し、応答を投稿するボットが必要です。 Microsoftのドキュメントを調べましたが、その要求/応答プロセスをプログラムする方法の例は見つかりませんでした。

任意の例または有用なリンクをいただければ幸いです

6
J.Doe

Jasonの答えに加えて、REST api呼び出しを行いたいので、次のコードを見てください:

public class RootDialog : IDialog<object>
{
    public Task StartAsync(IDialogContext context)
    {
        context.Wait(MessageReceivedAsync);

        return Task.CompletedTask;
    }

    private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)
    {
        var activity = await result as Activity;

        // User message
        string userMessage = activity.Text;
        try
        {
            using (HttpClient client = new HttpClient())
            {
                //Assuming that the api takes the user message as a query paramater
                string RequestURI = "YOUR_THIRD_PARTY_REST_API_URL?query=" + userMessage ;
                HttpResponseMessage responsemMsg = await client.GetAsync(RequestURI);
                if (responsemMsg.IsSuccessStatusCode)
                {
                    var apiResponse = await responsemMsg.Content.ReadAsStringAsync();

                    //Post the API response to bot again
                    await context.PostAsync($"Response is {apiResponse}");

                }
            }
        }
        catch (Exception ex)
        {

        }
        context.Wait(MessageReceivedAsync);
    }
}

ユーザーから入力を受け取ったら、REST呼び出しを行い、APIから応答を受け取った後、context.PostAsyncメソッドを使用してユーザーにポストバックできます。

3
Ashwin Kumar

Ashwinが言ったように、ボットは単なるWeb APIであり、他のWebAPIと同じようにリクエストを送受信しているだけです。以下は、始めるのに役立つドキュメントです。

基本的な概要
ボットコネクタサービスでボットを作成する
APIリファレンス

1
D4RKCIDE