我无法使用pymsteams通过网络挂接使用python post将json消息发送到micrososft团队频道。
所以,我在下面的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
我得到的response.status_code为200,但是在我的频道中看不到任何消息。
我也尝试过
response = requests.post(teams_webhook,headers = headers,proxies = proxies,data = myTeamsMessage.payload)
然后我得到400,错误消息。
那么,有人可以在这里帮助我吗?