この記事が必要なのはなぜですか?
まず、ボットを作りたいが、C#の使用方法を知らないが、RESTの使用方法を知っている「男」に。
第二に、私にとっては、APIのいくつかのバージョンを解析し、どのAPIとどのように使用する必要があるかを理解するのにかなりの時間を費やしたためです。 したがって、記事の中
ログイン
完全に(私が評価できた限り)は、私が上記で言及した記事で検討されています。 説明どおりにそれを行い、トークンを取得し、開始されました-私たちは「一baseに」あります(これは三thirdに揺れる大当たりが与えられる基地についての一般的に受け入れられている類推ではありません、彼女ではありません)。
メッセージを受信する
ボットには、jsonボディを持つリクエストが来るエンドポイントが必要です。 たとえば、skypeを介してボットに「hello bot」というテキストとともに送信されるメッセージは次のようになります。
json
}
{ 「タイプ」:「メッセージ」、 「id」:「1q80QckzCi3wL6zg」、 「タイムスタンプ」:「2016-08-16T12:56:16.49Z」、 「serviceUrl」:「https://skype.botframework.com」、 「channelId」:「skype」、 「from」:{ 「id」:「29:1Phe2HAxz6CD9uc1O_PVl_Zih6doxIe_KuyrQ9eANUbs」、 「名前」:「avvero」 }、 「会話」:{ 「id」:「29:1Phe2HAxz6CD9uc1O_PVl_Zih6doxIe_KuyrQ9eANUbs」 }、 「受信者」:{ 「id」:「28:300cbb48-78e0-4998-8e85-4f4c7ccb5aee」、 「名前」:「notify_bot」 }、 「text」:「helloボット」、 「エンティティ」:[ ]
}
このリクエストで私たちにとって特に重要なのは:
- conversation.id-会話識別子
- channelId-チャネル識別子
これらの2つのパラメーターは、それらに基づいて、ボットフレームワークにリクエストを送信するためにURLが定義されるため、特に重要です。 同時に、conversationIdロールはAPIの説明 ( swagger )で言及されていますが、channelIdでは、すべてがそれほど明白ではない、より正確にはnifig(技術用語)は明白ではありません。 たとえば、skypeチャネルのボットからのメッセージは次のようになります。
https:// skype .botframework.com / v3 / conversations / {conversationId} /アクティビティ、
そして、ここでの電報の場合:
https:// telegram .botframework.com / v3 / conversations / {conversationId} /アクティビティ。
ほとんどの時間はこの機能を特定するのに費やされていたので、私はドキュメントにこれを見ていないし、これは悪いです。
メッセージを送信する
skypeの場合、最小リクエスト本文は次のとおりです。
json
{ 「タイプ」:「メッセージ」、 「テキスト」:「こんにちは」 }
そして、このような電報の場合( fromオブジェクトが必要です):
json
{ 「タイプ」:「メッセージ」、 「from」:{ 「id」:「avvero_notify_bot」、 「名前」:「avvero」 }、 「テキスト」:「こんにちは」 }
カード
単一のテキストではありません。 あなたはカードを送ることができます(ここに電報のメッセージの例があります、スカイプのためにそれはからなしで可能です):
json
{ 「タイプ」:「メッセージ」、 「from」:{ 「id」:「avvero_notify_bot」、 「名前」:「avvero」 }、 「テキスト」:「こんにちは」、 「添付ファイル」:[ { 「contentType」:「application / vnd.microsoft.card.hero」、 「コンテンツ」:{ 「タイトル」:「タイトル」、 「字幕」:「字幕」、 「テキスト」:「テキスト」、 「画像」:[ { "url": "https://pp.vk.me/c7011/v7011856/3160d/HVELORSo5KM.jpg"、 「alt」:「こんにちは」 } ]、 「ボタン」:[ { 「タイプ」:「imBack」、 「タイトル」:「はい」、 "値": "はい<context offer = \" ... \ "/>" }、 { 「タイプ」:「imBack」、 「タイトル」:「いいえ」、 「値」:「いいえ」 }、 { 「タイプ」:「openUrl」、 「タイトル」:「Google」、 「値」:「https://disney.radisson.com」 } ] } } ] }
スカイプでは、次のようになります。

このような電報では:

終わり
基本的に、私が伝えたかったのはそれだけです。 そのようなボットを使用する場合の問題に言及する価値があります。
スカイプの場合:
- クライアントの最新バージョンが必要です(Linuxではかなり古く、ボットはそこに行きません)
- 1つのボットを単純な連絡先として追加しました-検索により、2番目のボットは追加に成功せず、 join.skype.com / bot / 6877d5c8-dc4f-4eda-9aac-29b19e1761f0などのリンクを介してのみ追加されました
電報の場合:
- @記号を使用してグループ内のボットにアクセスできません。メッセージがボットに送信されません。メッセージの前に/記号を付けると、メッセージはボットに送信されます。 だから「/こんにちはボット」
ご清聴ありがとうございました!