私はMicrosoft Bot Frameworkを使用してBotを作成しました。エミュレータとWeb Chatを使用して接続できます。私は自分のUIにユーザーログインを持っていて、ユーザーがログインすると、ユーザー名やその他の詳細をBotエンドポイントに送信する必要があります。ボットは、私が投稿してチャットに参加した情報から直接ユーザーを迎えることができます。 CURLの投稿リクエストを作成しましたが、そのエンドポイントには当てられません。いずれにしても、ここで問題を指摘してください。 CURL POSTリクエストのサンプルは大きな助けになります。 ありがとうCURL POST Bot Frameworkへのリクエスト
答えて
これはできないと思います。 コネクタクライアントからのボットでのみ話すことができます。ダイレクトラインAPIを設定しないと、コネクタクライアントを呼び出さない限り、POSTリクエストは送信されません。コネクタクライアントを使用して、ユーザーの詳細をボットユーザーデータに設定し、それ以外の場所で使用することができます。これを行うサンプルのC#コードを示します。
var client = new ConnectorClient(appId, appSecret);
var getData = await client.Bots.GetUserDataAsync(appId, userid);
getData.Data = "Your User Details in some form as a string (I'd prefer a serialized JSON)";
await client.Bots.SetUserDataAsync(Constants.botId, userid, getData);
設定した後はいつでもmessage.botuserdata
を使用してアクセスできます。注:useridにはmessage.From.Id
としてアクセスできます。投稿リクエストでチャットを行いたい場合は、次のようにします。
郵送での会話を開始します。
- ダイレクトラインチャットを設定し、ダイレクトラインシークレットをコピーします。
メイクポストコールこのヘッダ
Authorization: BotConnector "Your Direct Line Secret Here"
応答と
curl -X POST --header 'Accept: application/json 'https://directline.botframework.com/api/conversations/'
を以下のようにはconversationIdフィールドとJSONです。あなたは、余分なフィールドと同じヘッダーとポストコールを送るあなたはポストコール
を使用してメッセージを送信
にここから作ってあげるどんな会話のためにそれをする必要がありますで述べたように
Content-Type: application/json
curl -X POST --header 'Content-Type: application/json' -d '{"text": "Hi"}' 'https://directline.botframework.com/api/conversations/1234/messages'
- のために体は、JSONが含まれていますAPIリファレンス
は、詳細については、このDirect Line API Referenceを見てください。 30分後にアクセストークンが期限切れになるので、アクセストークンを再生成することを忘れないでください。私はまだコネクタークライアントメソッドを好むでしょう。コンテキストを維持するのが簡単で、トークンを再生成する必要はありません。
私は、内部Webサーバー上に配置されたボットを持っており、REST API呼び出しを使用してクライアントアプリケーション(Webクライアントではない)と通信しています。
ボットフレームのURLとは対照的に、ボットのAzure URLを使用する場合、同じコンセプトが有効かどうかはわかりませんが、それは参考になるかもしれません。 BotエミュレータがAzureと通信できる場合は、REST APIが動作するはずです。
メッセージの本文として送信するには、適切なJSON文字列が必要です。私はボットエミュレータに表示されているJSONをコピーし、それを基本として使用しました。
Dim client As RestClient = New RestClient(_localAddress) 'Address of the Bot
Dim request As RestRequest = New RestRequest("api/messages", Method.POST)
Dim byteArray = System.Text.Encoding.ASCII.GetBytes(_appID & ":" & _appsecret) ' Appropriate application secret and ID
request.AddHeader("Authorization", "Basic " & Convert.ToBase64String(byteArray))
'messageDetails is my message class dervived from the Json from the Bot Emulator
messageDetails.text = messageToRelay
request.AddJsonBody(messageDetails)
' response is then deserialised to a suitable BotReply class, again based on the Json you can see in Bot Emulator
Dim response = client.Execute(request)
あなたがメッセージの連鎖を維持するために、関連するクラスの変数のいくつかを管理する必要がありますが、JSONレスポンスを調べることによって、あなたが
をそれを選ぶことができるはずですボットエミュレータで見ることができます答えはCURLベースではありませんが、うまくいけば必要に応じて対応することができます。
- 1. Linux cURL対PHP cURL - POSTリクエスト
- 2. Curl -F POSTリクエストの変換
- 3. cURL POSTリクエストの問題
- 4. PHPのcURL POSTリクエストと通常のPOSTリクエストの区別
- 5. さまざまな形式のリクエストCURLへのHTTP POST
- 6. Microsoft bot framework publishing bot
- 7. GupshupからMicrosoft Bot Frameworkへの移植
- 8. 変数を持つJavaのCurl POSTリクエスト
- 9. CURL + JSON Lib付きのC++ POSTリクエスト
- 10. パブリックドメインのHosting Bot(Microsoft Bot Framework)
- 11. curl POSTをPythonリクエストに変換する
- 12. C#BOT Framework - PromptDialog Botアカウント
- 13. curlからpythonへの変換リクエスト
- 14. PHP-cURL POSTリクエストによるxmlリクエストの方法
- 15. CURL:サーバーへのPOST XMLデータを[コマンドラインパラメータWINDOWS]
- 16. Google Big QueryへのPOSTリクエスト
- 17. Webサービスへのリクエスト(POST)
- 18. Curl POST in R
- 19. Skype Bot Framework - Node.js
- 20. System.Net.Http.HttpRequestException(Microsoft Bot Framework)
- 21. Bot Frameworkエミュレータエラー
- 22. MS Bot Framework VideoCard
- 23. REST API curl POST
- 24. アンドロイドからFirebaseクラウドへのPOSTリクエストPOSTリクエスト
- 25. Play FrameworkでPOSTリクエストにファイルを渡す
- 26. Kik botをカールのPOSTリクエストで設定中に "無効な設定"
- 27. VolleyのDjango Rest Framework APIへのPOSTリクエストを作成するには?
- 28. Play Framework 2.0を使用したTwitter APIへのPOSTリクエストの送信
- 29. Skype Bot for Microsoft Bot Framework - 応答なし
- 30. ダイレクトラインAPI Microsoft Bot Framework
ありがとうございます。私はWeb Chatを使用しています。私はMicrosoft Web Chat IFRAMEを使用しません。あなたはそこを適切にコントロールすることはできないからです。私が見ているのは、このhttps://directline.botframework.comまたはhttps://webchat.botframework.comを持ってボットバックエンドに直接接続することです。 MSエミュレータはBot Rest End Pointを直接起動できます。カスタムWeb UIで同じことを再現しようとしています –