我有一些python工具,我想发送更新到hipchat房间。我在其他地方使用shell脚本执行此操作,因此我知道它在我们的环境中工作,但我似乎无法将令牌推送到hipchat API。一定要简单。
首先,这会正确验证并发送消息:
curl -d "room_id=xxx&from=DummyFrom&message=ThisIsATest&color=green" https://api.hipchat.com/v1/rooms/message?auth_token=yyy
但是当我尝试使用python“requests”模块时,我就陷入了困境。
import requests
room_id_real="xxx"
auth_token_real="yyy"
payload={"room_id":room_id_real,"from":"DummyFrom","message":"ThisIsATest","color":"green"}
headerdata={"auth_token":auth_token_real,"format":"json"}
r=requests.post("https://api.hipchat.com/v1/rooms/message", params=payload, headers=headerdata)
print r.ok, r.status_code, r.text
这是我的错误信息:
False 401 {"error":{"code":401,"type":"Unauthorized","message":"Auth token not found. Please see: https:\/\/www.hipchat.com\/docs\/api\/auth"}}
基本上我似乎没有正确传递身份验证令牌。我怎样才能使这个工作?
答案 0 :(得分:4)
如果它有帮助,这是一个有效的V2 API示例。我确实发现V2 API对于完全正确地获取请求的形式更加敏感。但是,符合V2 API可能更具前瞻性(尽管最初的问题似乎与V1有关)。
#!/usr/bin/env python
import json
from urllib2 import Request, urlopen
V2TOKEN = '--V2 API token goes here--'
ROOMID = --room-id-nr-goes-here--
# API V2, send message to room:
url = 'https://api.hipchat.com/v2/room/%d/notification' % ROOMID
message = "It's a<br><em>trap!</em>"
headers = {
"content-type": "application/json",
"authorization": "Bearer %s" % V2TOKEN}
datastr = json.dumps({
'message': message,
'color': 'yellow',
'message_format': 'html',
'notify': False})
request = Request(url, headers=headers, data=datastr)
uo = urlopen(request)
rawresponse = ''.join(uo)
uo.close()
assert uo.code == 204
答案 1 :(得分:3)
使用请求的另一个基本示例:
import requests, json
amessage = 'Hello World!'
room = 'https://api.hipchat.com/v2/room/18REPLACE35/notification'
headers = {'Authorization':'Bearer UGetYourOwnAuthKey', 'Content-type':'application/json'}
requests.post(url = room, data = json.dumps({'message':amessage}), headers = headers)
答案 2 :(得分:1)
正如Ianzz所说,请尝试将其包含在URL查询字符串中。虽然笨重(你可能想要哈希吧!),但它绝对有效。
另一个奇怪的怪癖是你通过Hipchat得到的代币;今天早些时候,我使用自己的个人信号完成了问题。它似乎与API的v2 beta相对应。如果你通过Group Admin进入并从那里获得一个令牌,它可能会有所帮助。
老问题很老。
答案 3 :(得分:-1)
这是使用HipChat API v2界面的官方列表 https://www.hipchat.com/docs/apiv2/libraries