Quickblox 群聊加入不工作(Javascript SDK)
Quickblox Group chat Join Not working (Javascript SDK)
我在使用 quickblox JS SDK 群聊时遇到问题
QB.chat.muc.join(dlg.xmpp_room_jid, function(){
console.log("Joined dialog " + dlg._id + " xmpp " + dlg.xmpp_room_jid);
})
这是来自 Quickblox 的示例代码。我检查了源代码,并与两个进行了比较,但没有发现任何差异。
最后,我替换了应用程序 ID、api 密钥和一些凭据以运行 quickblox 的示例代码。并意识到示例应用程序无法使用我的凭据。
QB账号真的重要吗?
是的,这是一个服务器端问题,所以请在此处查看答案 https://github.com/QuickBlox/quickblox-javascript-sdk/issues/102
我想通了。
就我而言,原因是您的会话创建 API。
API 文档说要使用 [POST] /session.json,但是 API 的用户无法进行群聊。我使用 /auth.json 创建会话并使用注册 RESTful api,它现在可以正常工作了。
这不是帐户问题。
我认为他们应该检查 API 或更新文档。
这是/auth.jsonapi的用法。
function qbGenerateSession() {
// Generate signature
$nonce = rand();
$timestamp = time(); // time() method must return current timestamp in UTC but seems like hi is return timestamp in current time zone
$signature_string = "application_id=" . QB_APP_ID . "&auth_key=" . QB_AUTH_KEY . "&nonce=" . $nonce . "×tamp=" . $timestamp;
$signature = hash_hmac('sha1', $signature_string , QB_AUTH_SECRET);
//echo $signature;
//echo $timestamp;
// Build post body
$post_body = http_build_query( array(
'application_id' => QB_APP_ID,
'auth_key' => QB_AUTH_KEY,
'timestamp' => $timestamp,
'nonce' => $nonce,
'signature' => $signature,
));
// Configure cURL
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.quickblox.com/auth.json'); // Full path is - https://api.quickblox.com/auth.json
curl_setopt($curl, CURLOPT_POST, true); // Use POST
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_body); // Setup post body
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Receive server response
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// Execute request and read response
$response = curl_exec($curl);
$token = null;
try {
$authInfo = json_decode($response);
$token = $authInfo->session->token;
}
catch (Exception $e) {
curl_close($curl);
return null;
}
// Close connection
curl_close($curl);
return $token;
}
我在使用 quickblox JS SDK 群聊时遇到问题
QB.chat.muc.join(dlg.xmpp_room_jid, function(){
console.log("Joined dialog " + dlg._id + " xmpp " + dlg.xmpp_room_jid);
})
这是来自 Quickblox 的示例代码。我检查了源代码,并与两个进行了比较,但没有发现任何差异。 最后,我替换了应用程序 ID、api 密钥和一些凭据以运行 quickblox 的示例代码。并意识到示例应用程序无法使用我的凭据。 QB账号真的重要吗?
是的,这是一个服务器端问题,所以请在此处查看答案 https://github.com/QuickBlox/quickblox-javascript-sdk/issues/102
我想通了。 就我而言,原因是您的会话创建 API。 API 文档说要使用 [POST] /session.json,但是 API 的用户无法进行群聊。我使用 /auth.json 创建会话并使用注册 RESTful api,它现在可以正常工作了。 这不是帐户问题。 我认为他们应该检查 API 或更新文档。
这是/auth.jsonapi的用法。
function qbGenerateSession() {
// Generate signature
$nonce = rand();
$timestamp = time(); // time() method must return current timestamp in UTC but seems like hi is return timestamp in current time zone
$signature_string = "application_id=" . QB_APP_ID . "&auth_key=" . QB_AUTH_KEY . "&nonce=" . $nonce . "×tamp=" . $timestamp;
$signature = hash_hmac('sha1', $signature_string , QB_AUTH_SECRET);
//echo $signature;
//echo $timestamp;
// Build post body
$post_body = http_build_query( array(
'application_id' => QB_APP_ID,
'auth_key' => QB_AUTH_KEY,
'timestamp' => $timestamp,
'nonce' => $nonce,
'signature' => $signature,
));
// Configure cURL
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.quickblox.com/auth.json'); // Full path is - https://api.quickblox.com/auth.json
curl_setopt($curl, CURLOPT_POST, true); // Use POST
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_body); // Setup post body
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Receive server response
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// Execute request and read response
$response = curl_exec($curl);
$token = null;
try {
$authInfo = json_decode($response);
$token = $authInfo->session->token;
}
catch (Exception $e) {
curl_close($curl);
return null;
}
// Close connection
curl_close($curl);
return $token;
}