使用python无法通过webhook向Microsoft团队发送消息

2024-06-28 20:29:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法使用python post通过使用pymsteams的webhook将json消息发送到microsoft团队频道。
因此,我有以下json(myTeamsMessage.payload)消息:

{'text': 'Pipeline Status', 'themeColor': '#FF0000', 'sections': 
[
{'facts': 
    [
    {'name': 'Server', 'value': u'<https://XXXX:8443/collector/pipeline/soap-post-v1>'},
    {'name': 'Environment', 'value': u'dev'}, {'name': 'Issue', 'value': u'Pipeline status is [STOPPED]'}
    ]
}, 
{'facts': 
    [
    {'name': 'Server', 'value': u'<https://xxxxx:8443/collector/pipeline/bb-4cc7-4c88-b6b6-be9694085a70>'}, 
    {'name': 'Environment', 'value': u'dev'}, {'name': 'Issue', 'value': u'Pipeline status is [STOPPED]'}
    ]
}, 
{'facts': 
    [
    {'name': 'Server', 'value': u'<https://XXXXX:8443/collector/pipeline/soap-post-v1_relations>'}, 
    {'name': 'Environment', 'value': u'dev'}, {'name': 'Issue', 'value': u'Pipeline status is [STOPPED]'}
    ]
}, 
{'facts': 
    [
    {'name': 'Server', 'value': u'<https://XXXXX:8443/collector/pipeline/characterstics-v1_allagents>'}, 
    {'name': 'Environment', 'value': u'dev'}, {'name': 'Issue', 'value': u'Pipeline status is [EDITED]'}
    ]
}, 
{'facts': 
    [
    {'name': 'Server', 'value': u'<https://XXXXXX:8443/collector/pipeline/ab23-8128b7c9fcf2>'}, 
    {'name': 'Environment', 'value': u'dev'}, {'name': 'Issue', 'value': u'Pipeline status is [EDITED]'}
    ]
}
], 'title': 'SDC Monitor'}

我试着用

response = requests.post(teams_webhook, headers=headers, proxies=proxies, data=json.dumps(byteify(myTeamsMessage.payload)))

byteify是将unicode格式转换成普通字符串的东西,如下所示,我从这里得到了它

def byteify(input):
    if isinstance(input, dict):
        return {byteify(key): byteify(value)
                for key, value in input.iteritems()}
    elif isinstance(input, list):
        return [byteify(element) for element in input]
    elif isinstance(input, unicode):
        return input.encode('utf-8')
    else:
        return input

我收到回复。状态代码为200,但在我的频道中看不到任何消息

我也试过了

response=requests.post(团队\u webhook,headers=headers,proxies=proxies,data=myTeamsMessage.payload)

然后我得到400,错误信息

有人能帮我吗


Tags: namehttpsdevinputpipelineenvironmentservervalue