2

好吧,一开始我必须描述我想要实现的那种情况:

我实现了一个 Skype 机器人,它将创建对话链接并将其作为带有按钮的基本卡片发送给用户。我需要在用户的对话中创建邀请链接。机器人不必是对话的参与者。

我为它写的:

BasicCard basicCard = new BasicCard()
        .withTitle("Title")
        .withButtons(Collections.singletonList(new CardAction()
                .withType(ActionTypes.OPEN_URL)
                .withTitle("Button text")
                .withValue("skype:28:long-id-separated-hyphen-bot;29:long-id-separated-hyphen-user1;29:long-id-separated-hyphen-user2?chat&topic=Conv%20Name")
        ));

Attachment attachment = new Attachment()
        .withContentType("application/vnd.microsoft.card.hero")
        .withContent(basicCard);

Activity activity = new Activity()
        .withType(ActivityTypes.MESSAGE)
        .withFrom(botAccount)
        .withRecipient(account1)
        .withAttachments(Collections.singletonList(attachment));

connector.get().conversations().sendToConversation("29:long-id-separated-hyphen-user1", activity);

并将其发送给 user1,但链接不起作用。

我使用https://docs.microsoft.com/en-us/skype-sdk/skypeuris/skypeuriapireference并在本文档中编写了我需要的内容,只需创建这样的链接 skype:28:long-id-separated-hyphen- bot;29:long-id-separated-hyphen-user1;29:long-id-separated-hyphen-user2?chat&topic=Conv%20Name,但它不起作用..

可能是我不明白用于创建和添加用户到对话的链接应该是什么样子。

如果我无法创建邀请用户加入对话的链接,我该如何创建群组对话并邀请一些人加入该对话?(所有用户都与机器人对话,我知道他们的 ids(29:long-id-separated-hyphen-user) 和 live ids(8:user-id))

谁能解释一下?

4

1 回答 1

0

经过更多测试,我发现 Skype URI 不支持多聊天。即使他们这样做了,您也在尝试使用 Bot Framework 中的 ID,这将是不兼容的。Skype 对机器人隐藏了用户的真实 ID,因此无法将您拥有的 ID 交换为可用 ID。此外,Skype 机器人正在被弃用。我觉得你想做的事情是不可能的。

您可以使用 UI 创建链接以手动加入群组对话,但这似乎是唯一的方法。Skype 一直在严格限制其 API,因此许多事情无法自动化。

该文档似乎已过时。但是,您可以在警告中看到问题始终存在于 Android 上:

Android 仅识别初始参与者;不支持多人聊天。

Android 行为现在似乎适用于所有平台。您可以通过在浏览器栏中输入 Skype URI 来自行测试。skype:asdf?chat并且skype:asdf;qwer?chat都将仅与 asdf 进行对话。任何平台显然都不支持来自 URI 的多方聊天。

于 2019-08-29T16:41:58.060 回答