从QuickBlox获取随机最终用户

时间:2013-11-15 07:12:51

标签: objective-c quickblox

我正在开发一款社交应用。对于当前用户,我需要随机显示该应用的其他用户。

我首先要使用此代码来获取用户数:

PagedRequest *request = [PagedRequest new];
request.perPage = 1;
request.page = 1;
[QBUsers usersWithPagedRequest:request delegate:self.proxy];

我注意到这是返回的XML:

<users type="array" current_page="1" per_page="1" total_entries="13">
  <user>
    <blob-id type="integer" nil="true"/>
    <created-at type="datetime">2013-07-24T06:16:13Z</created-at>
    <email>xxxxxx@xx.com</email>
    <external-user-id type="integer" nil="true"/>
    <facebook-id nil="true"/>
    <full-name>XXX xxx</full-name>
    <id type="integer">236286</id>
    <last-request-at type="datetime">2013-11-15T06:27:09Z</last-request-at>
    <login>t2wu</login>
    <owner-id type="integer">4282</owner-id>
    <phone nil="true"/>
    <twitter-id nil="true"/>
    <updated-at type="datetime">2013-11-15T06:27:09Z</updated-at>
    <website nil="true"/>
    <user-tags nil="true"/>
  </user>
</users>

我的目的是从“total_entries = 13”获得13,所以我知道用户总数,然后再次提出这样的请求:

PagedRequest *request = [PagedRequest new];
request.perPage = 1;
request.page = [self randomAmong: 13];
[QBUsers usersWithPagedRequest:request delegate:self.proxy];

其中[self randomAmong: 13]只从1和13中选择一个数字,然后抓取用户的个人资料图片并将其显示给当前用户。

三个问题:

  1. 虽然我可以在控制台中看到XML中的数字13 输出,我不知道如何获得这个数字。

  2. 我只想 通过我的移动应用程序用户轮换,而不是我的开发人员 帐户(帐户用户)。 QuickBlox允许多个应用程序 与一个QuickBlox帐户用户相关联;然而,所有用户似乎 被混为​​一谈虽然我可以确保我只有 这个帐户里面有一个应用程序,我仍然需要能够 将自己排除在外。

  3. 这是一个相对较小的问题。 虽然上面尝试获取当前用户数不是 尝试登录,委托方法 -(void)completedWithResult:(Result*)result将结果作为一个类 QBUUserLogInResult。我不明白为什么会这样,为什么不呢 QBUUserPagedResultQBUUserResult似乎可以提供更多 感

  4. 感谢。

1 个答案:

答案 0 :(得分:0)

这是一种正确的方法,以下是您的问题的答案:

1)

#pragma mark - 
#pragma mark QBActionStatusDelegate

- (void)completedWithResult:(Result *)result{ 

    // Get User result 
    if(result.success && [result isKindOfClass:[QBUUserPagedResult class]]){
        QBUUserPagedResult *usersResult = (QBUUserPagedResult *)result; 

        int totalEntries = usersResult.totalEntries;
    }
}

2)

您可以使用标记来分隔用户。用户注册时 - 只需向该用户添加标签,例如“app1”。

下一步 - 检索标记为“app1”的用户 - 使用下一个查询:

[QBUsers usersWithTags:[NSArray arrayWithObjects:@"app1", nil] delegate:self];

3)

用户登录查询将返回'QBUUserLogInResult'结果

获取单个用户查询将返回'QBUUserResult'结果

获取多个用户查询将返回'QBUUserPagedResult'结果