9

我可以从 C# 应用程序或 PS 脚本创建传入 webhook,将 JSON 消息发送到 MSFT doc 解释的通道。

但是,我想使用传入的 webhook 将 JSON 消息从我的应用程序发送给用户(作为私人消息),就像 Slack 允许的那样。

据我所知,这对于 MSFT 团队是不可能的:https ://dev.outlook.com/Connectors/Reference

但也许您知道任何解决方法或类似的方法来解决它。

提前致谢 :)

[已编辑]用于通过 C# 应用向 MSFT 团队发布消息的代码:

//Post a message using simple strings
public void PostMessage(string text, string title)
{
    Payload payload = new Payload()
    {
        Title = title
        Text = test
    };
    PostMessage(payload);
}

//Post a message using a Payload object
public async void PostMessage(Payload payload)
{
    string payloadJson = JsonConvert.SerializeObject(payload);
    var content = new StringContent(payloadJson);
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    var client = new HttpClient();
    uri = new Uri(GeneralConstants.TeamsURI);
    await client.PostAsync(uri, content);
}
4

1 回答 1

8

此时实现您的目标的最佳方法是创建一个 Bot 并实施它以公开您的应用程序或服务可以发布到的 webhook 端点,并让 bot 将这些消息发布到与用户的聊天中。

首先根据您的机器人收到的传入活动捕获成功发布到与用户的机器人对话所需的信息。

var callBackInfo = new CallbackInfo() 
{ 
     ConversationId = activity.Conversation.Id, 
     ServiceUrl = activity.ServiceUrl
};

然后将 callBackInfo 打包到一个令牌中,该令牌稍后将用作您的 webhook 的参数。

 var token = Convert.ToBase64String(
     Encoding.Default.GetBytes(
         JsonConvert.SerializeObject(callBackInfo)));

 var webhookUrl = host + "/v1/hook/" + token;

最后,实现 webhook 处理程序以解压 callBackInfo:

var jsonString = Encoding.Default.GetString(Convert.FromBase64String(token));
var callbackInfo = JsonConvert.DeserializeObject<CallbackInfo>(jsonString);

并发布到机器人与用户的对话中:

ConnectorClient connector = new ConnectorClient(new Uri(callbackInfo.ServiceUrl));

        var newMessage = Activity.CreateMessageActivity();
        newMessage.Type = ActivityTypes.Message;
        newMessage.Conversation = new ConversationAccount(id: callbackInfo.ConversationId);
        newMessage.TextFormat = "xml";
        newMessage.Text = message.Text;

        await connector.Conversations.SendToConversationAsync(newMessage as Activity);

在此处查看我关于此主题的博客文章。如果您以前从未编写过 Microsoft Teams 机器人,请在此处查看我的另一篇博客文章以及分步说明。

于 2016-11-03T19:26:06.523 回答