4

Microsoft Bot Framework DirectLine API を使用して、他のユーザーとボットの間の既存の会話を読み取ってメッセージを追加しようとしています。私が読んだことから、マスターシークレットを使用するとこれが可能になるはずですが、うまくいきません。次のように、WebAPI を使用して、既存の 2 つの会話 (Facebook と Skype) にアクセスしようとしています。

    [HttpPost]
    [Route("remind")]
    public string Remind()
    {
        var secret = System.Configuration.ConfigurationManager.AppSettings["secret"];

        var uri = new Uri("https://directline.botframework.com/");
        var creds = new DirectLineClientCredentials(secret);

        DirectLineClient client = new DirectLineClient(uri, creds);
        Conversations convs = new Conversations(client);

        var conversationIDs = new string[] { "0000000000000000-0000000000000000", "00:0123456789abcdefghijklmnopqrstuvwxyz0123456789-A-_0123456798ABCDEF" }; // Existing Facebook & Skype conversations

        // Send a message to each conversation:
        foreach (var conversationID in conversationIDs)
        {
            Message message = new Message(conversationId: conversationID, fromProperty: "My Bot", text: "Hey dude, remember that thing!");
            Console.WriteLine(message.Text);
            convs.PostMessage(conversationID, message); // FAILS - This executes but doesn't do anything.
        }

        // Try reading the messages from a conversation (just to test if it's working):
        string waterMark = null;
        var set = convs.GetMessages(conversationIDs[0], waterMark); // FAILS - This fails with a 404 not found.
        waterMark = set.Watermark;

        return "Done :-)";
    }

PostMessage() のサイレント呼び出しに失敗し、GetMessages() の 404 で失敗します。私は正しいことをしているようです。ボットはライブなどであり、DirectLine API とは別に、Facebook と Skype で非常にうまく機能します。DirectLine API を使用して新しい会話を作成した場合にのみ機能し、そのメッセージにアクセスして新しいメッセージを投稿できます。

この質問のようなものは役に立ちますが、それを修正するために何をすべきかを完全には教えてくれません: Microsoft Bot Framework の既存の会話でメッセージにアクセスするのが難しい

どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1

1

セキュリティ上の理由から、DirectLine を使用して別の会話からのメッセージをスパイすることはできません。あなたが説明するシナリオ(人間にエスカレートする)には、これにアプローチするさまざまな方法があります。1 つは、アカウント間でボット ブローカーの会話を行うことです (つまり、Facebook エンド ユーザー <-> あなたのボット <-> Facebook サポート担当者)。それぞれがボットと話し、ボットはメッセージを他のユーザーに渡します。(Facebook ユーザー <-> あなたのボット <-> Skype ユーザーの場合もあります) コンテキストを提供するために、ボットは最後の n 件のメッセージを保存する必要があります。あるいは、反対側にある直通電話を使用して、独自のカスタマー サポート チャット インターフェイスを構築している人々を見てきました。お役に立てれば

于 2016-11-17T19:08:53.737 に答える