Bot Connector API を使用してメッセージに入力ヒントを追加するAdd input hints to messages with the Bot Connector API

メッセージの入力ヒントを指定すれば、メッセージがクライアントに配信された後、ボットがユーザー入力を受け付けるか、期待するか、無視するかを示すことができます。By specifying an input hint for a message, you can indicate whether your bot is accepting, expecting, or ignoring user input after the message is delivered to the client. このフィールドをサポートするチャンネルでは、これによってクライアントが適宜、ユーザー入力コントロールの状態を設定できます。For channels that support this field, this enables clients to set the state of user input controls accordingly. たとえば、ボットがユーザーの入力を無視していることをメッセージの入力ヒントが示している場合、クライアントはユーザーが入力を提供できないよう、マイクを閉じて入力ボックスを無効にすることができます。For example, if a message's input hint indicates that the bot is ignoring user input, the client may close the microphone and disable the input box to prevent the user from providing input.

入力の受け付けAccepting input

ボットが受動的に入力を受け取る準備ができているが、ユーザーからの応答を待っていないことを示すには、メッセージを表す Activity オブジェクト内で inputHint プロパティを acceptingInput に設定します。To indicate that your bot is passively ready for input but is not awaiting a response from the user, set the inputHint property to acceptingInput within the Activity object that represents your message. 多くのチャネルでは、これによってクライアントの入力ボックスが有効になり、マイクは閉じられますがユーザーはまだマイクにアクセスできます。On many channels, this will cause the client's input box to be enabled and microphone to be closed, but still accessible to the user.

次の例は、メッセージを送信し、ボットが入力を受け付けていることを指定する要求を示しています。The following example shows a request that sends a message and specifies that the bot is accepting input. この要求の例で、Direct Line はベース URI を示しています。ご利用のボットによって発行される要求に対するベース URI は、これとは異なる場合があります。In this example request, Direct Line represents the base URI; the base URI for requests that your bot issues may be different. ベース URI の設定の詳細については、API リファレンスに関する記事をご覧ください。For details about setting the base URI, see API Reference.

POST https://smba.trafficmanager.net/apis/v3/conversations/abcd1234/activities/5d5cdc723
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{
    "type": "message",
    "from": {
        "id": "12345678",
        "name": "sender's name"
    },
    "conversation": {
        "id": "abcd1234",
        "name": "conversation's name"
   },
   "recipient": {
        "id": "1234abcd",
        "name": "recipient's name"
    },
    "text": "Here's a picture of the house I was telling you about.",
    "inputHint": "acceptingInput",
    "replyToId": "5d5cdc723"
}

入力の期待Expecting input

ボットがユーザーからの応答をアクティブに待っていることを示すには、メッセージを表す Activity オブジェクト内で inputHint プロパティを expectingInput に設定します。To indicate that your bot is actively awaiting a response from the user, set the inputHint property to expectingInput within the Activity object that represents your message. それをサポートするチャンネルでは、これによってクライアントの入力ボックスが有効になり、マイクが使えるようになります。On channels that support it, this will cause the client's input box to be enabled and microphone to be open.

次の例は、メッセージを送信し、ボットが入力を期待していることを指定する要求を示しています。The following example shows a request that sends a message and specifies that the bot is expecting input. この要求の例で、Direct Line はベース URI を示しています。ご利用のボットによって発行される要求に対するベース URI は、これとは異なる場合があります。In this example request, Direct Line represents the base URI; the base URI for requests that your bot issues may be different. ベース URI の設定の詳細については、API リファレンスに関する記事をご覧ください。For details about setting the base URI, see API Reference.

POST https://smba.trafficmanager.net/apis/v3/conversations/abcd1234/activities/5d5cdc723
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{
    "type": "message",
    "from": {
        "id": "12345678",
        "name": "sender's name"
    },
    "conversation": {
        "id": "abcd1234",
        "name": "conversation's name"
   },
   "recipient": {
        "id": "1234abcd",
        "name": "recipient's name"
    },
    "text": "What is your favorite color?",
    "inputHint": "expectingInput",
    "replyToId": "5d5cdc723"
}

入力の無視Ignoring input

ボットがユーザーから入力を受け取る準備ができていないことを示すには、メッセージを表す Activity オブジェクト内で inputHint プロパティを ignoringInput に設定します。To indicate that your bot is not ready to receive input from the user, set the inputHint property to ignoringInput within the Activity object that represents your message. それをサポートするチャンネルでは、これによってクライアントの入力ボックスが無効になり、マイクが切れます。On channels that support it, this will cause the client's input box to be disabled and microphone to be closed.

次の例は、メッセージを送信し、ボットが入力を無視していることを指定する要求を示しています。The following example shows a request that sends a message and specifies that the bot is ignoring input. この要求の例で、Direct Line はベース URI を示しています。ご利用のボットによって発行される要求に対するベース URI は、これとは異なる場合があります。In this example request, Direct Line represents the base URI; the base URI for requests that your bot issues may be different. ベース URI の設定の詳細については、API リファレンスに関する記事をご覧ください。For details about setting the base URI, see API Reference.

POST https://smba.trafficmanager.net/apis/v3/conversations/abcd1234/activities/5d5cdc723
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{
    "type": "message",
    "from": {
        "id": "12345678",
        "name": "sender's name"
    },
    "conversation": {
        "id": "abcd1234",
        "name": "conversation's name"
   },
   "recipient": {
        "id": "1234abcd",
        "name": "recipient's name"
    },
    "text": "Please hold while I perform the calculation.",
    "inputHint": "ignoringInput",
    "replyToId": "5d5cdc723"
}

その他のリソースAdditional resources