嗯,一开始我必须描述我想要实现的那种情况:
我实现了一个 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://learn.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,但它不起作用..
可能是我不明白创建和添加用户到对话的链接应该是什么样子。
如果我无法创建邀请用户加入对话的链接,我该如何创建群组对话并邀请某些人加入该对话? (所有用户都与 bot 进行过对话,我知道他们的 ID(29:long-id-separated-hyphen-user)和实时 ID(8:user-id))
谁能解释一下?
最佳答案
经过更多测试,我发现 Skype URI 不支持多人聊天。即使他们这样做了,您也在尝试使用 Bot Framework 中的 ID,这将是不兼容的。 Skype 向机器人隐藏了用户的真实 ID,因此无法将您拥有的 ID 换成可用的 ID。此外,Skype 机器人正在被弃用。我觉得您尝试做的事情是不可能的。
您可以使用 UI 创建一个链接以手动加入群组对话,但这似乎是唯一的方法。 Skype 一直严格限制其 API,因此许多事情无法自动化。
This documentation似乎已经过时了。但是,您可以在警告中看到该问题一直存在于 Android 上:
Android recognizes the initial participant only; multi chats are not supported.
Android 行为现在似乎适用于所有平台。您可以通过在浏览器栏中输入 Skype URI 来自行测试。 skype:asdf?chat
和 skype:asdf;qwer?chat
都将打开仅与 asdf 的对话。显然,任何平台都不支持来自 URI 的多聊天。
关于java - Skype 对话 uri 在卡片按钮中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57609425/