Direct Line API 3.0 で会話を開始する
Direct Line の会話はクライアントによって明示的に開かれ、ボットとクライアントが参加し、有効な資格情報を持っている限り続きます。 会話が開いている間は、ボットとクライアントの両方がメッセージを送信できます。 複数のクライアントが特定の会話に接続でき、各クライアントは、複数のユーザーの代理として参加できます。
新しい会話を開く
クライアントから新しい会話を開始するには、/v3/directline/conversations エンドポイントに POST を発行します。
POST https://directline.botframework.com/v3/directline/conversations
Authorization: Bearer SECRET_OR_TOKEN
次のスニペットは、会話の開始要求と応答の例を示しています。
Request
POST https://directline.botframework.com/v3/directline/conversations
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn
Response
要求が成功すると、応答には、会話の ID、トークン、トークンの有効期限が切れるまでの秒数を示す値、およびクライアントが WebSocket ストリーム経由でアクティビティを受信するために使用できるストリーム URL が含まれます。
HTTP/1.1 201 Created
[other headers]
{
"conversationId": "abc123",
"token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
"expires_in": 1800,
"streamUrl": "https://directline.botframework.com/v3/directline/conversations/abc123/stream?t=RCurR_XV9ZA.cwA..."
}
通常、会話の開始要求は新しい会話を開くために使用され、新しい会話が正常に開始されると HTTP 201 状態コードが返されます。 ただし、クライアントが、会話開始操作を使用して会話を開始するために以前に使用したヘッダー内Authorization
のDirect Line トークンを使用して会話開始要求を送信した場合、HTTP 200 状態コードが返され、要求は受け入れ可能でしたが、会話は作成されていません (既に存在しているため)。
ヒント
WebSocket stream URL に接続されるまで 60 秒の猶予があります。 この間に接続を確立できない場合は、 会話に再接続して 新しいストリーム URL を生成できます。
会話の開始とトークンの生成
会話の開始操作 (POST /v3/directline/conversations
) は、両方の操作が単一の会話にアクセスするために使用できる a token
を返すという点で、トークン生成操作 (POST /v3/directline/tokens/generate
) に似ています。 ただし、会話の開始操作では会話も開始され、ボットに連絡して WebSocket ストリーム URL が作成されますが、トークン生成操作ではこれらの処理は実行されません。
クライアントとの会話をすぐに開始する場合は、会話開始操作を使用します。 クライアントにトークンを配布し、会話を開始する場合は、代わりに トークン生成 操作を使用します。