【问题标题】:How to send a proactive message from a bot to a user如何从机器人向用户发送主动消息
【发布时间】:2019-09-25 01:49:13
【问题描述】:

我正在尝试从机器人向尚未安装机器人且不需要通过 REST API 安装机器人的团队用户发送消息。

我已尝试关注此document

它明确指出: “发送消息以开始新的对话线程与发送消息以响应现有对话不同:当您的机器人开始新的对话时,没有预先存在的对话可以发布消息。为了发送一个您需要的主动消息:"

据我了解,这意味着我正在尝试做的事情是可能的。我试图运行这个sample

但是,据我所知,它需要一个对话 ID。如果没有对话 ID,它就不起作用。

我尝试使用机器人网络令牌(通常用于响应用户的活动请求)发送这样的请求:

POST /v3/conversations
{
  "bot": {
    "id": "28:10j12ou0d812-2o1098-c1mjojzldxcj-1098028n ",
    "name": "The Bot"
  },
  "members": [
    {
      "id": "29:012d20j1cjo20211"
    }
  ],
  "channelData": {
    "tenant": {
      "id": "197231joe-1209j01821-012kdjoj"
    }
  }
}

但是,它失败并显示以下消息:

Send Message to https://graph.microsoft.com/v3/conversations failed: (401) {
  "error": {
    "code": "InvalidAuthenticationToken",
    "message": "Access token validation failure. Invalid audience.",
    "innerError": {
      "request-id": "92922235-8c87-47ed-92bc-4ba17469611a",
      "date": "2019-09-24T14:43:59"
    }
  }
}

我猜这可能是因为我没有先发送 MicrosoftAppCredentials.TrustServiceUrl。但这是一个 c# 调用。如何在 REST API 中进行相同的调用?

【问题讨论】:

  • 看来您使用的是旧样本。您可以尝试使用最新的 v4 sample 看看问题是否仍然存在?

标签: botframework microsoft-graph-api microsoft-teams


【解决方案1】:

请查看Bot Framework REST APIs 文档。

以下是generate the access token 的步骤,您可以使用这些步骤调用Create Conversation API。

POST https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id=MICROSOFT-APP-ID&client_secret=MICROSOFT-APP-PASSWORD&scope=https%3A%2F%2Fapi.botframework.com%2F.default

【讨论】:

  • @wajees - msft。我试过这个。请参阅我原来问题的下半部分。我总是收到一个 invalidauthenticationtoken 错误。
  • 我也尝试过在 /v3/conversation 上 GET (没有继续令牌)。它失败并出现相同的错误。我不确定如何获得持续令牌。
  • proactive messaging sample 代码在为你工作吗?
  • 是的,但是代码需要一个现有的对话才能工作。这并不是真正的“主动”。
  • 为了向任何用户发送主动消息,您需要知道Obtain necessary user information 部分中记录的 serviceUrl、tenantId 和用户的唯一 ID。
猜你喜欢
  • 2019-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多