我正试图通过Python和v2 API发布到hipchat房间。
我可以通过curl在shell脚本中发布没有问题:
ROOM_ID=123
AUTH_TOKEN=123456789
MESSAGE="Hello World"
curl -H "Content-Type: application/json" \
-X POST \
-d "{ \"from\": \"GTM\",
\"notify\": \"true\",
\"color\": \"red\",
\"message_format\": \"text\",
\"message\": \"$MESSAGE\"
}" \
https://hipchat.server.domain.com/v2/room/$ROOM_ID/notification?auth_token=$AUTH_TOKEN
但是,通过Python发送具有相同有效负载的消息失败。我使用现成的客户端以及通过各种http模块的简单请求,例如: https://gist.github.com/bdclark/4bc8ed06643e077fa620(当然我也搜索了自己并测试了examples like this one)。
作为一个基本的例子我试过例如这样:
host = 'hipchat.host.domain.com'
room = '123'
message = "Hello World"
headers = {'Content-type: application/json'}
color = "yellow"
format = "text"
notify=False
AUTH_TOKEN="123456789"
url = "https://{0}/v2/room/{1}/notification?auth_token={2}".format(host, room, AUTH_TOKEN)
h = httplib2.Http()
payload = {
'from':'FROM',
'message': message,
'notify': notify,
'message_format': format,
'color': color
}
resp, content = h.request(url,"POST",urllib.urlencode(payload),headers=headers)
httplib2 (以及基于它的客户端)返回responseNotReady
错误。 requests (以及基于它的客户端)返回Connection reset by peer
错误。
由于Curl发送没有问题,它可能不是Hipchat本身的问题。我假设我的Python安装可能有问题(这是MacOs Sierra上的默认2.7)。所以问题是,我如何找到错误的根本原因。
任何帮助都非常感激。