我是Simperium的新手,正在使用Javascript API。
我确实使用authorize获得了一个访问令牌,但是在创建新的Simperium(...)时得到了'auth‘错误。因此,我尝试获取新的令牌,但失败了,返回错误代码400或401。
这是我的代码,其中key是api密钥,ID是应用程序id,USER和PASS是我的用户名和密码……
授权:
var url,request,response,json,token,auth;
url="https://auth.simperium.com/1/"+appID+"/authorize/";
request=new XMLHttpRequest();
request.onreadystatechange=function() {
if(request.readyState===4) {
if(request.status===200) {
response=request.responseText;
console.log('response: '+response);
if(response.length>0) {
json=JSON.parse(response);
token=json.access_token;
...
}
}
else {
console.log('ERROR');
return null;
}
}
};
request.open("POST",url,true);
request.setRequestHeader("X-Simperium-API-Key",'"'+KEY+'"');
request.setRequestHeader("Content-type", "application/json");
auth='{"username": "'+USER+'", "password": "'+PASS+'"}';
request.send(auth);使用400或401会失败!
当我有一个ACCESS_TOKEN的时候:
var options="{token: '"+ACCESS_TOKEN+"'}";
var simperium=new Simperium(ID,options);
var bucket=simperium.bucket('ledger');
bucket.on('notify',function(id,data) {
console.log("transaction updated: "+data);
...
});
bucket.on("error", function(error) {
console.log("Simperium error : "+error);
if (error == "auth") {
console.log("auth error, need to reauthenticate and get new access token")
...
}
});
bucket.start();这导致了"auth“错误。
发布于 2012-10-25 05:52:51
有几件事,为了在API键上设置请求头,您不应该需要在api键两边加上额外的引号,除非您是从模板中呈现此内容。如果你的密钥是abcdefg,它应该是这样的:
request.setRequestHeader("X-Simperium-API-Key","abcdefg");一旦有了访问令牌,在设置options对象时,就应该传递一个对象而不是字符串:
var options={token: "ACCESS_TOKEN"};https://stackoverflow.com/questions/13051959
复制相似问题