1

ラッパー skype4com を使用して、デスクトップ Skype API の使用を避けようとしています。Microsoft Bot Framework の方向に目を向けます。次のように Microsoft Bot Connector を使用して Skype ボットを作成し、登録しました 。今、特定のグループの会話にメッセージを書くタスクがあります。このためには、ボットが参加しているグループ会話のリストを取得する必要があります。会話 ID や会話名など、Skype ボットのすべてのグループ会話に関する情報を取得したいと考えています。私はそれに関する情報を見つけることができませんでした。Microsoft Bot のすべてのグループの会話のリストを取得する方法を知っている人はいますか?

4

2 に答える 2

1

ボットが会話に追加されると、タイプのメッセージを受け取りますconversationUpdate(このページを参照)。このメッセージ タイプによって通知される変更に従って、ある種のストレージを使用して、会話のリストを自分で維持する必要があります。

例:

[BotAuthentication]
public class MessagesController : ApiController
{
    private List<string> m_conversationIds;

    public MessagesController()
    {
        m_conversationIds = new List<string>();
    }

    public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
    {
        if (activity.Type != ActivityTypes.Message)
        {
            return await HandleSystemMessage(activity);
        }

        // ...
    }

    private async Task<HttpResponseMessage> HandleSystemMessage(Activity message)
    {
        if (message.Type == ActivityTypes.ConversationUpdate)
        {
            m_conversationIds.Add(message.Conversation.Id);
            return Request.CreateResponse(HttpStatusCode.OK);
        }

        // ...
    }
}

もちろん、会話 ID だけでなく、追加の情報が必要になる場合もあります。また、更新がボットを会話に追加することに関するものである場合にのみデータを保存するようにフィルタリングする必要があります (たとえば、ボットを削除するのではなく)。

: この例は、開始するためのものです。上記のリストのようなメモリ内ストアは、スケーラブルでも堅牢でもありません。

于 2016-08-26T17:05:43.860 に答える
0

現在、これは Bot Framework SDK (またはプロトコル) 内で列挙できません。システムは、ボットが特定の会話に追加されたときに、ボットがメッセージ/グループに関する情報をキャッシュしていると想定します。 起動時にグループ情報を取得

于 2016-09-05T08:11:18.560 に答える