【问题标题】:Skype conversation uri doesn`t work in card buttonSkype 对话 uri 在卡片按钮中不起作用
【发布时间】:2019-12-27 18:47:55
【问题描述】:

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

我实现了一个 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))

谁能解释一下?

【问题讨论】:

  • 澄清一下,您说的是 Skype 还是 Skype for Business?
  • 我说的是 Skype。
  • 手动构建链接并粘贴到浏览器栏中是否有效?
  • 您尝试执行的操作存在一些问题。我不认为 Skype 允许自动创建与机器人的群组对话。您能否详细解释一下您要创建什么样的对话以及为什么要创建它们?你可以直接链接到你的机器人的join.skype.com/bot 页面吗?
  • 我想创建一个生日机器人,它将创建一个对话(或发送对话链接)给用户。我有一组使用特定命令向该机器人注册的用户。此外,注册用户的数据保存在某一天(用户的生日),机器人创建对话或向注册用户发送对话链接。我做了大部分处理、存储等工作,但剩下的部分是向创建的组中的用户发送邀请。

标签: java botframework skype skype-bots microsoft-skype-bot


【解决方案1】:

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

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

This documentation 似乎已经过时了。但是,您可以在警告中看到该问题在 Android 上始终存在:

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

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

【讨论】:

  • 所以你想说,我无法使用 Skype 机器人创建群组对话的邀请链接?但是为什么那么在官方文档中是如何做到这一点的呢? docs.microsoft.com/en-us/skype-sdk/skypeuris/…为什么有一条指令不起作用?
  • 我只需要创建对话的邀请链接,我会自动创建(对话),并将其发送给用户。
  • 我编辑了答案。你是如何创建对话的?您只是在使用 Bot Framework API 吗?您是否真的看到过您以这种方式创建的对话,或者您只是假设它正在创建?
  • 我认为通过创建必要的链接,对话将由 Skype 自动创建。我只需要以某种方式创建一个可以邀请用户的对话。
  • 为什么没有人会纠正过时的文档,因为它误导了开发人员?
猜你喜欢
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
  • 1970-01-01
  • 2016-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多