Skype 对话 uri 在卡片按钮中不起作用
Skype conversation uri doesn`t work in card button
嗯,首先我必须描述我想要实现的那种情况:
我实现了一个 Skype 机器人,它将创建对话 link 并将其作为带按钮的基本卡片发送给用户。我需要为用户创建对话邀请 link。机器人不必是对话的参与者。
我为它写的内容:
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,但是 link 不起作用。
我使用 https://docs.microsoft.com/en-us/skype-sdk/skypeuris/skypeuriapireference 并且在本文档中,写的是我需要的内容,只需像这样创建 link skype:28:long-id-separated-hyphen-bot;29:long-id -separated-hyphen-user1;29:long-id-separated-hyphen-user2?chat&topic=Conv%20Name,但它不起作用..
可能是我不明白 link 在创建和添加用户到对话时应该是什么样子。
如果我无法创建 link 邀请用户加入对话,我如何创建群组对话并邀请一些人加入该对话? (所有用户都与机器人对话,我知道他们的 ID(29:long-id-separated-hyphen-user)和实时 ID(8:user-id))
谁能解释一下?
经过更多测试,我发现 Skype URI 不支持多人聊天。即使他们这样做了,您也在尝试使用 Bot Framework 中的 ID,这将是不兼容的。 Skype 向机器人隐藏了用户的真实 ID,因此无法将您拥有的 ID 换成可用的 ID。此外,Skype 机器人正在被弃用。我觉得你想做的事情是不可能的。
您可以创建一个 link 以使用 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 的多聊天。
嗯,首先我必须描述我想要实现的那种情况:
我实现了一个 Skype 机器人,它将创建对话 link 并将其作为带按钮的基本卡片发送给用户。我需要为用户创建对话邀请 link。机器人不必是对话的参与者。
我为它写的内容:
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,但是 link 不起作用。
我使用 https://docs.microsoft.com/en-us/skype-sdk/skypeuris/skypeuriapireference 并且在本文档中,写的是我需要的内容,只需像这样创建 link skype:28:long-id-separated-hyphen-bot;29:long-id -separated-hyphen-user1;29:long-id-separated-hyphen-user2?chat&topic=Conv%20Name,但它不起作用..
可能是我不明白 link 在创建和添加用户到对话时应该是什么样子。
如果我无法创建 link 邀请用户加入对话,我如何创建群组对话并邀请一些人加入该对话? (所有用户都与机器人对话,我知道他们的 ID(29:long-id-separated-hyphen-user)和实时 ID(8:user-id))
谁能解释一下?
经过更多测试,我发现 Skype URI 不支持多人聊天。即使他们这样做了,您也在尝试使用 Bot Framework 中的 ID,这将是不兼容的。 Skype 向机器人隐藏了用户的真实 ID,因此无法将您拥有的 ID 换成可用的 ID。此外,Skype 机器人正在被弃用。我觉得你想做的事情是不可能的。
您可以创建一个 link 以使用 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 的多聊天。