Могу ли я установить фотографию пользователя на Titanium ACS?

Мне нужно добавить фотографию для моего пользователя, сделав это из веб-интерфейса, я получил фотографию в поле с именем photo, но если я попытаюсь сделать то же самое программно из мобильного приложения, это не сработает.

photonativePath это моя фотография из камеры или галереи.

Cloud.Users.update({
    email: 'joeuser@mycompany.com',
    first_name: 'joe',
    last_name: 'user',
    photo : Titanium.Filesystem.getFile(photonativePath),
    custom_fields: {
        favorite_color: 'blue',
        age: 25
    }
}, function (e) {
    if (e.success) {
        var user = e.users[0];
        alert('Success:\n' +
            'id: ' + user.id + '\n' +
            'first name: ' + user.first_name + '\n' +
            'last name: ' + user.last_name);
    } else {
        alert('Error:\n' +
            ((e.error && e.message) || JSON.stringify(e)));
    }
});

1 ответ

Решение

Попробуйте следующее. Вы можете открыть фотогалерею с помощью метода openPhotoGallery. Это откроет изображение из галереи и выберите изображение. Обновит картинку при успешном обратном вызове

function openPhotoGallery(){
    Ti.Media.openPhotoGallery({
        success: function (event){
            var image=event.media;
            var imgvwTest = Ti.UI.createImageView({
                image : image
            });
            updatePhoto(imgvwTest.toImage());
        },
        cancel:function(){
            Titanium.UI.createAlertDialog({
                title:'Error', 
                message:'An error occured while trying to reference your gallery!'
            }).show();
        },
        error:function(er){
            Titanium.UI.createAlertDialog({
                title:'Error', 
                message:'An error occured while trying to reference your gallery!'
            }).show();
        }
    });

}

function updatePhoto(selectedImage){

    Cloud.Users.update({
        email: 'joeuser@mycompany.com',
        first_name: 'joe',
        last_name: 'user',
        photo : selectedImage.media,
        custom_fields: {
            favorite_color: 'blue',
            age: 25
        }
    }, function (e) {
        if (e.success) {
            var user = e.users[0];
            alert('Success:\n' +
                'id: ' + user.id + '\n' +
                'first name: ' + user.first_name + '\n' +
                'last name: ' + user.last_name);
        } else {
            alert('Error:\n' +
                ((e.error && e.message) || JSON.stringify(e)));
        }
    });
}

Пожалуйста, дайте мне знать, если у вас есть какие-либо проблемы

Другие вопросы по тегам