2017-12-01 8 views
2

Skype for Businessチャンネル(以下、SfB)へのボットの登録に関して、our previous questionの解決策が見つかりませんでしたが、新しいボットを作成し、新しいユーザーのためにSfBチャンネルに新規に登録します。作成および登録プロセス中にエラーはありませんでした。現時点でMS bot Framework、Skype For BusinessからconversationUpdateとendOfConversationを取得する方法

のAzureで展開BOTするVisutal Studioの2017(クラウドエクスプローラ>アタッチデバッガ)によって取り付けられたときに、我々はデバッグモードでの着信Activityを読むことができますが、我々はタイプの唯一の活動を観察:「conversationUpdate」または「endOfConversationを "を送信するたびに、SfB経由でボットにメッセージが送信されます。

UPDATE

ボットが作成され、アカウントが私たちのAzure Active Directoryのの一部ではありません。しかし、アズールとMSDNサブスクリプションにリンクされているアカウントを使用して登録されました。 SfBが使用する送信者とボットのアカウントは、Azure Active Directoryの一部です。

Azureポータルから専用Azureポータルを作成する場合は、この専用Azure Active Directoryで作成されたアカウントに対して、SfB経由でのコインシデンスが機能します。

アズールまたはSFBでどのようなログや設定が働いて最終的に通信を行うために、我々は今、確認することができ

ENDのUPDATE? 二重チェックが必要なボットを表す特別な要件はありますか? ボットのオーディエンスユーザーが定義されているAzure Active Directoryに対する所有者の所有者がいない場合、ボットのセキュリティ設定はありますか?

シリアライズされたJSON活動の例を参照してください:

{ 
    "type": "conversationUpdate", 
    "id": "6d5f79c9-9a89-4606-92cb-9ead49405865", 
    "timestamp": "2017-12-01T14:13:53.3958935Z", 
    "serviceUrl": "https://webpooldb40r04.infra.lync.com/platformservice/.../botframework", 
    "channelId": "skypeforbusiness", 
    "from": { "id": "sip:[email protected]", "name": "LastName, Me" }, 
    "conversation": { "isGroup": true, "id": "YzkxZDQ2MmQjc2lwOmFmZmJib3RAYmx1ZWxpbmtz..." }, 
    "recipient": { "id": "sip:[email protected]", "name": "sip:[email protected]" }, 
    "membersAdded": [], 
    "membersRemoved": [ { "id": "sip:[email protected]", "name": "LastName, Me" } ], 
    "attachments": [], 
    "entities": [] 
} 

{ 
    "type": "endOfConversation", 
    "id": "4b485bcf-59c8-446f-9d56-74dda973db25", 
    "timestamp": "2017-12-01T14:13:53.4115031Z", 
    "serviceUrl": "https://webpooldb40r04.infra.lync.com/platformservice/.../botframework", 
    "channelId": "skypeforbusiness", 
    "from": { "id": "sip:[email protected]" }, 
    "conversation": { "isGroup": true, "id": "YzkxZDQ2MmQjc2lwOmFmZmJib3RAYmx1ZWxpbmtz..." }, 
    "recipient": { "id": "sip:[email protected]", "name": "sip:[email protected]" }, 
    "membersAdded": [], 
    "membersRemoved": [], 
    "attachments": [], 
    "entities": [] 
} 

備考:

1)ボットは週間以上登録されています。

2)当社のコントローラは、我々のテストに影響を与える可能性のある問題を回避することができるよう、いくつかのコードとして含まれています

public async Task<HttpResponseMessage> Post([FromBody]Activity activity) 
    { 
     if (activity != null) 
     { 
      if (activity.Type == ActivityTypes.Message) 
      { 
       var reply = activity.CreateReply("Reply"); 
       using (var client = new ConnectorClient(new Uri(reply.ServiceUrl))) 
       { 
        await connectorClient.Conversations.ReplyToActivityAsync(reply); 
       } 
      } 
     } 

     return Request.CreateResponse(HttpStatusCode.OK); 
    } 

3)の応答が正しくウェブチャットチャンネルのために生成されています:WebChat sample text and response

4)でボットWebChatとSfBの両方の受信メッセージとユーザーを確認するAnalytics enter image description here

5) "conversationUpdate"または "endOfConversation"のアクティビティに反応しようとすると、 :

{"Conversation does not exist"} Microsoft.Rest.HttpOperationException 

6)私たちは新しい会話を作成するコードを実行しようとするならば、我々が得る:

{"BVD operation failed with 404"} Microsoft.Rest.HttpOperationException 

ポイント5)と6)、むしろ期待されているとイラスト

答えて

1

ためだけに追加されます現在、S4B Botsは同じドメイン内のユーザーとしか通信できません。なぜなら、ボットは相互作用しているユーザーのアイデンティティを識別でき(ユーザーIDがハッシュされていない)、エンドユーザーがテナントでボットを使用できるようにするためにはテナント管理者の手順が必要であるためです。

したがって、フェデレーション/クロステナントのシナリオは現在サポートされていません。

ほとんどの場合、各AADの「ドメイン」にボット「インスタンス」を作成することをお勧めします。

+0

1)メッセージのボットアカウントと送信者は同じドメインからのもので、powershellによるこのドメインへのbotの設定が機能します。ボット自体は、このドメインにないユーザが所有する別のサブスクリプションにあります。奇妙なのは、会話が何らかの形で「作成」され、「終了」し、ユーザーに関するデバッグ情報が正しいことです。 2)各AADの "ドメイン"にボット "インスタンス"を作成する - これはどうやって終了したのですか?しかし、ボットの他のチャンネルが既に設定されていて、他のチャンネルも同様に移行する必要があった。 –

+1

こんにちはルドルフ、私はこれがボットサービスチームが検討しているシナリオだと思います。フィードバックとしてあなたのユースケースを提供することをお勧めします。 Azureポータルからのサポートチケットを開いてフィードバックを送信することもできます。これが実際に機能するかどうかはすぐにはわかりませんが、あなたのものがプッシュされた唯一のユースケースではありません。 – albigi

関連する問題