Parse platform 为什么我总是得到一个“a”;请求失败,响应代码为401“;当试图通过城市飞艇推进时?
我已经检查了双钥匙、三钥匙和四钥匙,确认我传递的主钥匙正确。我的参数是直接从UA网站获取的,所以不可能是这样。有人知道我做错了什么吗Parse platform 为什么我总是得到一个“a”;请求失败,响应代码为401“;当试图通过城市飞艇推进时?,parse-platform,urbanairship.com,Parse Platform,Urbanairship.com,我已经检查了双钥匙、三钥匙和四钥匙,确认我传递的主钥匙正确。我的参数是直接从UA网站获取的,所以不可能是这样。有人知道我做错了什么吗 Parse.Cloud.define("sendPush", function(request, response) { var Buffer = require('buffer').Buffer; var parameters = { "audience" : "all", "device_types" : "all",
Parse.Cloud.define("sendPush", function(request, response) {
var Buffer = require('buffer').Buffer;
var parameters = {
"audience" : "all",
"device_types" : "all",
"notification" : {
"alert" : "Hello from Urban Airship."
}
};
var params = JSON.stringify(parameters);
Parse.Cloud.httpRequest({
url: "https://go.urbanairship.com/api/push/",
method: 'POST',
headers: {
"Content-Type" : "application/json",
"Authorization" : 'Basic ' + new Buffer('MASTER_KEY').toString('base64'),
"Accept" : "application/vnd.urbanairship+json; version=3;"
},
body: params,
success: function(httpResponse) {
response.error(httpResponse);
},
error: function(httpResponse) {
response.error('Request failed with response code ' + httpResponse.status);
}
});
});
我还尝试在APP_SECRET中添加:
"Authorization" : 'Basic ' + new Buffer('APP_SECRET':'MASTER_KEY').toString('base64'),
您的代码示例不清楚您是否在请求中包含应用程序密钥。对城市飞艇的API请求使用HTTP基本身份验证。用户名部分是应用程序密钥,密码部分在本例中是主密钥。应用程序机密仅限于较低安全性的API,并用于分布式应用程序。发送消息和其他服务器API请求时需要主密钥
城市飞艇为我们提供了一个指南。我也遇到了同样的问题,两天多来我一直试图通过网络诊断工具来解决这个问题。因为在调试之后,我检查了我是否向UA发送了正确的凭据。毕竟,我打电话给UA,让他们检查凭证(在我的例子中是appKey和appToken,用于使用java connect API进行流式处理)是否仍然有效。他们检查并批准了验证,但以防万一,他们给我发了一份新的凭证。我可以连接到新的凭据
这肯定是UA的一个错误,因为我一直在用另一个测试应用程序测试,这是一个桌面java应用程序,我可以连接到服务器(使用相同的appKey和appToken)并获取事件,但我在我的主应用程序中得到了401个错误,这是一个运行在TomCat 8.0上的Web应用程序。这意味着它在同一时间使用同一凭证为一个应用程序工作,而不为另一个应用程序工作 是的,我已经阅读并重新阅读了所有故障排除解决方案,并尝试了所有解决方案以及“授权”字段的许多其他变体和组合,但似乎没有任何效果。我可以很容易地从UA网站推送,但是这个解析服务器端代码似乎无法获得正确的授权。我已经走到了死胡同,重新考虑我的方法。