Session 具有用户授权的Quickblox API会话

Session 具有用户授权的Quickblox API会话,session,quickblox,Session,Quickblox,我正在尝试使用此ajax调用从移动应用程序创建一个API会话,该会话在QuickBlox上具有用户授权(在同一调用中) var url = 'https://api.quickblox.com/session.json'; var data = 'application_id=' + QB.appId + '&auth_key=' + QB.authKey + '&timestamp=' + s.timestamp + '&nonce=' + s.nonce + '&am

我正在尝试使用此ajax调用从移动应用程序创建一个API会话,该会话在QuickBlox上具有用户授权(在同一调用中)

var url = 'https://api.quickblox.com/session.json';
var data = 'application_id=' + QB.appId + '&auth_key=' + QB.authKey + '&timestamp=' + s.timestamp + '&nonce=' + s.nonce + '&signature=' + s.signature + '&user[login]=' + username + '&user[password]=' + password;
$.ajax({
    type: 'POST',
    url: url,
    data: data,
    success: successCallback,
    error: errorCallback
});
请注意,用户名和密码被替换为与QuickBlox应用程序上的真实用户对应的文本字符串

Quickblox返回此错误:

{
    "readyState":4,
    "responseText":" {
        "errors":{
            "base":["Unexpected signature"]
        }
    }",
    "status":422,
    "statusText":"Unprocessable Entity"
}
但是,如果我使用此数据字符串在QuickBlox上创建相同的API会话,而无需用户授权(相同,无需用户和密码)

QuickBlox正确创建会话。谁能告诉我哪里出了错吗


感谢您的支持。;-)

我可以创建一个API会话和一个用户授权来执行两个查询,但我只想在一个查询中完成。Quickblox文档说这是可能的,但我还没有做到。有什么建议吗?看来你用原生JS创建的签名不正确。使用QuickBlox JS SDK。下面的链接可能对您有用,谢谢Dayra的建议。我尝试使用QuickBlox JS SDK,但我在QuickBlox.JS中遇到了require()调用问题,我不知道如何解决。此外,我还没有找到为每个模块定义的方法域QB.users、QB.data(自定义对象)、QB.content、QB.location、QB.location.geodata、QB.location.places、QB.messages、QB.messages.tokens、QB.messages.subscriptions和QB.messages.events。我认为QuickBlox有很大的潜力,但对新手来说很棘手。谢谢你的帮助。嗨,塞萨尔。您在哪个浏览器中遇到有关
require()
调用的问题?您是否使用了
quickblox.min.js
?JSSDK遵循相当标准的API调用模式-每个方法都接受对象、字符串或整数以及带有“error”或“response”参数的回调,例如
QB.createSession({login:,password:},function(error,response){…})。你有一点是关于缺少文档的。您的问题和反馈将非常有帮助-请发送电子邮件给alex。bass@quickblox.com我会尽我所能帮助你!嗨,亚历克斯。我目前正在开发一个手机网络应用程序,使用Phonegap、jQuery mobile和QuickBlox作为BaaS。我正在用Chrome36.0.1985.125从运行OSX10.9.4(Mavericks)的iMAC上测试这个应用程序。出于测试目的,我使用quickblox.js而不是quickblox.min.js,我想这并不重要。如果您愿意,我可以向您发送一封电子邮件,其中包含有关此问题的详细信息,当然还有我对Quickblox的反馈。一旦解决了这个问题,我将在这里更新这个问题,以便分享解决方案。
var data = 'application_id=' + QB.appId + '&auth_key=' + QB.authKey + '&timestamp=' + s.timestamp + '&nonce=' + s.nonce + '&signature=' + s.signature;