获得会话时,我收到“意外错误”。
这是获取签名的代码(从this修改,因为该代码没有一些导入,特别是使用hmac.new()代替hmac(),因为该代码对我不起作用。
import sys
import json
import time
import random
import hashlib
import hmac
import urllib
import httplib
application_id = '3427'
auth_key = 'PLYHedAmxwdvt59'
auth_secret = '*some secret key*'
nonce = str(random.randint(1, 10000))
timestamp = str(int(time.time()))
signature_raw_body = ("application_id=" + application_id + "&auth_key=" + auth_key +
"&nonce=" + nonce + "×tamp=" + timestamp)
signature = hmac.new(auth_secret, signature_raw_body, hashlib.sha1).hexdigest()
params = urllib.urlencode({'application_id': application_id,
'auth_key': auth_key,
'timestamp': timestamp, 'nonce' : nonce,
'signature' : signature})
conn = httplib.HTTPSConnection("api.quickblox.com")
conn.request("POST", "/session", params, {})
response = conn.getresponse()
print response.read()
print "signature = '%s'" % signature
输出:
<?xml version="1.0" encoding="UTF-8"?>
<session>
<application-id type="integer">3427</application-id>
<created-at type="datetime">2013-08-04T12:19:10Z</created-at>
<device-id type="integer" nil="true"/>
<id type="integer">3552056</id>
<nonce type="integer">5855</nonce>
<token>686840081c18c7dd0e0a779c233e0d9605bcb567</token>
<ts type="integer">1375618748</ts>
<updated-at type="datetime">2013-08-04T12:19:10Z</updated-at>
<user-id type="integer" nil="true"/>
</session>
signature = 'f08b68b645184619bbe59bac217506e66a840425'
接下来我使用curl尝试创建会话:
curl -X POST -H“Content-Type:application / json”-H “QuickBlox-REST-API-Version:0.1.0”-d '{ “APPLICATION_ID”: “3427”, “AUTH_KEY”: “PLYHedAmxwdvt59”, “随机数”: “33432”, “时间戳”: “1375619372”, “签名”: “f08b68b645184619bbe59bac217506e66a840425”}' http://api.quickblox.com/session.json
我得到了这个结果: {“errors”:{“base”:[“意外签名”]}}
出了什么问题?
答案 0 :(得分:0)
以下是我的例子:
curl -X POST -H "Content-Type: application/json" -H "QuickBlox-REST-API-Version: 0.1.0" -d '{"application_id":"92","auth_key":"wJHdOcQSxXQGWx5","nonce":"315","timestamp":"1375624737","signature":"f36336b8bc8449b8252edbc0ee441cdb5856112c"}' http://api.quickblox.com/session.json
结果:
{"session":{"application_id":92,"created_at":"2013-08-04T13:59:50Z","device_id":null,"id":3553701,"nonce":315,"token":"1d423b6633e2fc82f81d88b65f3e26198853c84c","ts":1375624737,"updated_at":"2013-08-04T13:59:50Z","user_id":null}}
您应该检查生成签名的代码