如何在 Quickblox 中设置用户个人资料图像 objective c

How to set User Profile Image In Quickblox objective c

 [QBRequest signUp: user successBlock: ^ (QBResponse * response, QBUUser * user) {


         // your file - this is an image in our case
         NSData * imageData = UIImageJPEGRepresentation([UIImage imageNamed: @"Profile Picture"], 0.8 f);

         [QBRequest TUploadFile: imageData fileName: @"ProfilePicture"
             contentType: @"image/jpeg"
             isPublic: YES successBlock: ^ (QBResponse * response, QBCBlob * blob) {

                 // File uploaded, do something
                 // if blob.isPublic == YES
                 NSString * url = [blob publicUrl];
             }
             statusBlock: ^ (QBRequest * request, QBRequestStatus * status) {
                 // handle progress            
             }
             errorBlock: ^ (QBResponse * response) {
                 NSLog(@"error: %@", response.error);
             }
         ];

我一直在尝试吸引用户并上传个人资料图片,但无法找到正确的方法。我是否必须将其上传到自定义数据或内容模块???我已经在 CustomData 中创建了一个字段。代码是 运行 文件正在某处保存,但我不知道在哪里。

我漏了什么,求助>快要疯了>>>谢谢

上传图片 (TUploadFile) 后,在 successBlock 中将 [blob ID] 设置为您的 QBUUser blobID 属性。之后只需执行更新用户:

QBUpdateUserParameters *params = [QBUpdateUserParameters new];
params.blobID = [blob ID];
[QBRequest updateCurrentUser:params successBlock:^(QBResponse * _Nonnull response, QBUUser * _Nullable user) {
        // success block
    } errorBlock:^(QBResponse * _Nonnull response) {
        // error block
        NSLog(@"Failed to update user: %@", [response.error reasons]);
    }];

Swift 4.2 :

此答案适用于那些想要 set/get 来自 url 的用户个人资料图片(图片集 url)

我们可以使用 customData 属性 的 QBUUser class。它将容纳 String.

设置:

注册时设置customData

        let newUser = QBUUser()
        newUser.login = "Saifan"
        newUser.fullName = "Nadaf"
        //Set your image url string here
        newUser.customData = "https://homepages.cae.wisc.edu/~ece533/images/arctichare.png"
        newUser.password = "Pass@1234"

        QBRequest.signUp(newUser, successBlock: { [weak self] response, user in
            guard let self = self else {
                return
            }

            //SignUp Sucessfull Call Login Method Here


            }, errorBlock: { [weak self] response in

                response.status.rawValue == 422 {
                    // The User With Existent Login Was Created Earlier
                    // Call Login Method Here

                    return
                }

        })

如果我们想 set/Update 现有用户,我们可以使用 QBUpdateUserParameters()

更新用户个人资料
        let updateUserParameter = QBUpdateUserParameters()

        //Set ur Image URL to customData
        updateUserParameter.customData = "https://homepages.cae.wisc.edu/~ece533/images/arctichare.png"

        //Use updateCurrentUser() to update user parameters

        QBRequest.updateCurrentUser(updateUserParameter, successBlock: {  [weak self] response, user in
        guard let self = self else {
                                return
         }
         //*** This is Success Block ***//

         //variable user is current updated User you can check on admin panel also
         print("updated custom data \(user.customData)")

         //Connect to chat using QBChat.instance.connect()

         }, errorBlock: { [weak self] response in
                                //Handle Error Here
          })

获取:

使用 recipientIDQBChatDialog class 获取用户个人资料图片(如果已创建对话框)。

            QBRequest.user(withID: UInt(chatDialog.recipientID), successBlock: { (res, user) in

                if let imgUrl = user.customData {
                   // Here we will get imageUrl
                     print(imgUrl)

                } else {
                    // Set Default image here
                }

            }) { (response) in  }

使用 customDataQBUUser class

获取用户个人资料图片
        if let imgrUrl = user.customData{  // here user is a QBUUser()
             // Here we will get imageUrl
                     print(imgUrl)
        } else {
            // Set Default image here
        }

检查管理面板左侧->用户->ID->