javascript - Quickblox 群聊加入不工作(Javascript SDK)

标签 javascript chat quickblox

我在使用 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 key 和一些凭据替换为工作 quickblox 的示例代码。并意识到示例应用程序无法使用我的凭据。 QB 帐户真的很重要吗?

最佳答案

我想通了。 就我而言,原因是您的 session 创建 API。 API 文档说使用 [POST]/session.json,但使用此 API 的用户无法进行群聊。我使用/auth.json 创建 session 并使用注册 RESTful api,它现在正在运行。 这不是帐户问题。 我认为他们应该检查该 API 或更新文档。

这是/auth.json api的用法。

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 . "&timestamp=" . $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;
}

关于javascript - Quickblox 群聊加入不工作(Javascript SDK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37938419/

相关文章:

javascript - 帮助使用正则表达式从括号内提取值

javascript - 选择具有多个参数的行(ajax 和 PHP)

javascript - 如何在通过ajax发送值时处理编码

swift - Twilio 聊天 - 客户端 channel 列表始终为零

android - Quickblox:无法通过 FCM 获取推送通知 errr 401

android - Quickblox 一对一聊天连接丢失

javascript - 使用 javascript 将检索到的数据保存到本地 json 数据库中

node.js - 在 redis 中存储 node.js 聊天的消息。如何?

Node.js - 如何使用一个与 socket.io 的连接来连接多个房间

在 AWS Mobile SDK 中使用 Quickblox Pod 文件的 iOS 构建错误