quickblox - 我如何获得所有者的内容?

时间:2014-05-18 15:40:19

标签: quickblox

我正在使用CMS,我想知道我是否可以通过所有者获取内容,另一方面可以显示应用用户的图片。

我知道我可以通过以下方式获取当前用户的内容列表:

QB.content.list(function(error, response){
    if(error) {
        console.log(error);
    } else {
        // Success
    }
});

但是我可以访问其他用户的内容吗?

非常感谢

1 个答案:

答案 0 :(得分:4)

不幸的是,此功能现在不在API中。如果是你想要的个人资料图片,你可以在用户身上使用blob参数。

如果您能为我们提供一些好的用例 - 请发送电子邮件至alex.bass@quickblox.com,我们会考虑添加它。

希望这不会给你带来太多不便。

修改

我的同事告诉我,有一种解决方法 - 它并不完美,但确实可以完成工作。

您只需2个字段即可创建自定义对象类:blob_id和user_id。然后在上传内容时,只需在回调中添加记录。

这是完整的代码 - 我还没有测试过它。如果您有任何问题,请告诉我。

上传时:

QB.init(app_id, auth_key, auth_secret);

var user_id;

QB.createSession({login: <username>, password: <password>}, function(error, response){
    if(error) {
        console.log(error);
    } else {
        // Just making a record of the user_id for use later
        user_id = response.id;
    }
});

//
// later...
//

var files = $("input[type=file]")[0].files;

// This function will create "content" record in QB, then when QB returns AWS URL to
// post to, it will automatically upload it, then on completion, mark uploaded.
QB.content.createAndUpload({'file': files, 'public': true}, function(err, response){
    if (err) {
        console.log(err);
    } else {
        // Response will contain blob ID.

        var data = {
            blob_id: response.id,
            blob_owner: user_id
        }

        QB.data.create("BlobsToUsers", data, function(err, response){
            if (err) {
                console.log(err);
            } else {
                // Done
            }
        });

    }
});

然后,稍后当您列出内容时:

QB.data.list("BlobsToUsers", { blob_owner: user_id } function(err, response){
    if (err) {
        console.log(err);
    } else {

        // response.items will be array of all records with the specified blob_owner.
        // You could also filter by date, timestamp or whatever you want. 

    }
});

将其分解为步骤:

  1. 使用“QB.content.createAndUpload()”上传数据
  2. 创建自定义对象,将匹配的blob ID记录到所有者
  3. 稍后,列出时,从自定义对象中获取记录。
  4. 从那里做任何你想做的事。有一个名为“QB.content.getFileUrl()”的函数将返回用于<img>标记的AWS URL。
  5. 希望这有帮助