通过Outlook中的VBScript规则调用Slack API

Bir*_*ley 3 regex vbscript outlook slack-api

我正在尝试在运行VBScript的Outlook中运行一条规则,该规则调用Slack.com Web服务并使用特定消息更新我的Slack频道之一。当前状态-我只希望它发布静态消息。将来的状态,我将尝试使用RegEx从电子邮件中解析出某些数据并将其发布到我的闲暇频道。

通过弗兰肯斯坦在网上找到的一些脚本,这就是我所拥有的(但效果不佳),希望有人可以提供帮助...

    Function ProcessSend()
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.4.0")
    Set oXMLDoc = CreateObject("MSXML2.DOMDocument")

    strEnvelope = "payload={""channel"": ""#edt-error"", ""text"": ""This is posted to #edt-error.""}"

    Call oXMLHTTP.Open("POST", "https://custom-slack-url-for-service-goes-here.com" & posFirm, False)
    Call oXMLHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
    Call oXMLHTTP.Send(strEnvelope)

    Dim szResponse: szResponse = oXMLHTTP.responseText
    Call oXMLDoc.LoadXML(szResponse)

    If (oXMLDoc.parseError.ErrorCode <> 0) Then
        'call msgbox("ERROR")
        response = oXMLHTTP.responseText&" "&oXMLDoc.parseError.reason
        'call msgbox(oXMLDoc.parseError.reason)
    Else
        response = oXMLDoc.getElementsByTagName("string")(0).ChildNodes(0).Text
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

Bir*_*ley 5

因此,我自己解决了此问题,但想发布更多详细信息。

请求:我想打电话给Slack并用自定义消息更新我的频道之一,当我收到电子邮件并触发Outlook规则时(从X消息发送到Y)。

解决方案:首先,您需要导航到C驱动器上Microsoft Office文件夹中的selfcert.exe,创建一个新的自签名证书,然后将该证书添加到Outlook中的Trusted Publishers。完成后,我通过按Alt + F11从Outlook中打开Visual Basic,并在“ ThisOutlookSession”项目中创建了以下脚本。

Sub ProcessSend(Item As Outlook.MailItem)
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
    Set oXMLDoc = CreateObject("MSXML2.DOMDocument")

    strEnvelope = "payload={""channel"": ""#edt-error"", ""text"": ""This is posted to #edt-error.""}"

    Call oXMLHTTP.Open("POST", "https://INSERT-YOUR-SERVICE-URL-HERE" & posFirm, False)
    Call oXMLHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
    Call oXMLHTTP.Send(strEnvelope)

    Dim szResponse: szResponse = oXMLHTTP.responseText
    Call oXMLDoc.LoadXML(szResponse)
End Sub
Run Code Online (Sandbox Code Playgroud)

最后,我创建了一条规则,该规则寻找适当的参数,然后执行“运行此脚本”操作。单击规则中的“脚本”名称时,将弹出一个窗口,您可以选择已经创建的上述脚本。

希望这对某人有帮助!