Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set User Profile Image In Quickblox objective c

Tags:

quickblox

 [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);
             }
         ];

I have been trying to sing up a user, and upload an profile image but can not figure out the right way to do it. Do I have to upload it to custom data, or content module??? I already have a field created in CustomData. The code is running the file is getting saved somewhere but i don know where.

What am I missing, please help>about to go crazy>>>thank you

like image 265
SigAbrt Avatar asked Jan 18 '26 15:01

SigAbrt


2 Answers

After you uploaded your picture (TUploadFile), in successBlock set [blob ID] to your QBUUser blobID property. After that just perform update user:

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]);
    }];
like image 187
Raikerian Avatar answered Jan 21 '26 07:01

Raikerian


Swift 4.2 :

This answer is for those who want to set/get user profile image from url (set url of image)

we can use customData property of QBUUser class. it will hold a String.

Set :

set customData while signUp.

        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
                }

        })

if we want to set/Update for existing users we can update user profile using 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
          })

Get :

fetch users profile image using recipientID from QBChatDialog class if Dialog is created.

            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  }

fetch user profile image using customData from QBUUser class

        if let imgrUrl = user.customData{  // here user is a QBUUser()
             // Here we will get imageUrl
                     print(imgUrl)
        } else {
            // Set Default image here
        }

Check on admin panel leftSide->user->ID->

enter image description here

like image 29
Saifan Nadaf Avatar answered Jan 21 '26 06:01

Saifan Nadaf



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!