更改发送到我们的机器人的直线 activity 的服务 url
Changing the service url for a direct line activity that is sent to our bot
我们正在尝试使用直线 api 向我们的机器人发送一条消息,然后在不使用直线 api 的情况下从我们的机器人发送一条消息。为此,我们需要与默认直线 api 服务 url 不同的服务 url。
我们尝试在 activity 中放置不同的服务 url 我们发送直线 api 但是当 activity 被发送到机器人时,直线 api 服务 url 被填充。
我们还尝试在 activity 中更改服务 url 一旦它被发送到机器人,但机器人仍然尝试将其响应 activity 发送到直线 api.
我们使它起作用的唯一方法是执行以下操作:
((Microsoft.Bot.Connector.IConnectorClient)turnContext.TurnState["Microsoft.Bot.Connector.IConnectorClient"]).BaseUri = new System.Uri("DIFFERENT_SERCVICE_URL");
虽然这可行,但我们认为这不是解决此问题的最佳方法,我们可能不应该修改转向状态。
是否有更好的方法来更改此服务url?
您的机器人至少可以在三个级别向用户发送 activity。 TurnContext.SendActivities
调用 BotAdapter.SendActivitiesAsync
,如果您使用的是 BotFrameworkAdapter
,那么它又会使用存储在轮流状态中的连接器客户端调用 Conversations.SendToConversationAsync
。您的机器人可以使用所有这三种方法系列,因此如果您想绕过 turn 上下文,则可以直接使用适配器,如果您想绕过适配器,则可以直接使用连接器客户端。
您发现当您尝试使用转弯上下文发送活动时,您的活动会发送到连接器客户端的基本 URI。如果您不想在转弯状态下修改连接器客户端,那么您可以创建一个不同的连接器客户端并改用它。
我们正在尝试使用直线 api 向我们的机器人发送一条消息,然后在不使用直线 api 的情况下从我们的机器人发送一条消息。为此,我们需要与默认直线 api 服务 url 不同的服务 url。
我们尝试在 activity 中放置不同的服务 url 我们发送直线 api 但是当 activity 被发送到机器人时,直线 api 服务 url 被填充。
我们还尝试在 activity 中更改服务 url 一旦它被发送到机器人,但机器人仍然尝试将其响应 activity 发送到直线 api.
我们使它起作用的唯一方法是执行以下操作:
((Microsoft.Bot.Connector.IConnectorClient)turnContext.TurnState["Microsoft.Bot.Connector.IConnectorClient"]).BaseUri = new System.Uri("DIFFERENT_SERCVICE_URL");
虽然这可行,但我们认为这不是解决此问题的最佳方法,我们可能不应该修改转向状态。
是否有更好的方法来更改此服务url?
您的机器人至少可以在三个级别向用户发送 activity。 TurnContext.SendActivities
调用 BotAdapter.SendActivitiesAsync
,如果您使用的是 BotFrameworkAdapter
,那么它又会使用存储在轮流状态中的连接器客户端调用 Conversations.SendToConversationAsync
。您的机器人可以使用所有这三种方法系列,因此如果您想绕过 turn 上下文,则可以直接使用适配器,如果您想绕过适配器,则可以直接使用连接器客户端。
您发现当您尝试使用转弯上下文发送活动时,您的活动会发送到连接器客户端的基本 URI。如果您不想在转弯状态下修改连接器客户端,那么您可以创建一个不同的连接器客户端并改用它。