Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.10.2012, 00:17
Интересующийся
Отправить личное сообщение для uberchel Посмотреть профиль Найти все сообщения от uberchel
 
Регистрация: 28.10.2010
Сообщений: 20

Api в контакте, постинг картинки на стену
Доброе время суток, собственно столкнулся с тем, что не как не могу
отправить пост запрос на сервер вк.
получаю ссылку для загрузки методом photos.getUploadServer, после чего надо отправить пост запрос, отправляю, но там надо в параметрах указывать не ссылку на картинку, а multipart/form-data, как её получить ? недопру никак, не хотелось бы использовать пхп.
Ответить с цитированием
  #2 (permalink)  
Старый 31.10.2012, 12:23
Аватар для NikolasGrad
Аспирант
Отправить личное сообщение для NikolasGrad Посмотреть профиль Найти все сообщения от NikolasGrad
 
Регистрация: 12.04.2012
Сообщений: 49

Покажите код
Ответить с цитированием
  #3 (permalink)  
Старый 31.10.2012, 22:24
Интересующийся
Отправить личное сообщение для uberchel Посмотреть профиль Найти все сообщения от uberchel
 
Регистрация: 28.10.2010
Сообщений: 20

function openfriends(friends, num) {
    VK.Api.call('friends.get', {
        fields: "uid, first_name, last_name, photo"
    }, function (r) {
        $.each(r.response, function (i, node) {
            num = String(i + 1);
            friends += '<div class="ufriends"><span>' + node.first_name + '</span><br><span>' + node.last_name + '</span><br><img src="' + node.photo + '" align="center" alt="' + node.uid + '"></div>';
        });
        new _uWnd('friends', 'Друзей : ' + num, 485, 90, {
            autosize: 1,
            maxh: 550,
            minh: 90,
            oncontent:function () {
             $('.ufriends').live('click', function () {

             VK.Api.call('photos.getWallUploadServer', {
               uid: uid          
              }, function (photo) {
             
             //тут пост запрос, который должен отправить сформировавшийся ссылку photo.response.upload_url с 
             //параметром photo содержащим не ссылку на картинку а саму картинку побитно (multipart/form-data). 
             // делал пост запрос и через ajax json но некак не выходило , возвращало статус 0
                 VK.Api.call('wall.post', {
                 owner_id: $(this).find('img').attr('alt'),
                 message: 'фото для тебя '+$(this).find('span').eq(0).html()+'\n\r'+location.href+'\n'
                 });
                });
              }); 
           }
        }, '<div id="upanel" align="center">' + friends + '</div>');
    });
}
Ответить с цитированием
  #4 (permalink)  
Старый 31.10.2012, 22:27
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

если сделать <input type="file> и саму форму, то можно будет отправить ... только тогда придётся самому файл выбирать
Ответить с цитированием
  #5 (permalink)  
Старый 31.10.2012, 22:32
Интересующийся
Отправить личное сообщение для uberchel Посмотреть профиль Найти все сообщения от uberchel
 
Регистрация: 28.10.2010
Сообщений: 20

файл - это фотка в фотогалереи, на странице полного материала будет эта кнопка, при нажатии которой, будет выходить окно, в котором выбираем кому отправить и отправляем, вообще скрипт работает отлично, если без картинки, но вот все проблема том, что это фотогалерея и картинка необходима.
пробовал я создавать форму через скрипт, но не чего не выходит, я уже просто в тупике.
Ответить с цитированием
  #6 (permalink)  
Старый 01.11.2012, 03:13
Аватар для NikolasGrad
Аспирант
Отправить личное сообщение для NikolasGrad Посмотреть профиль Найти все сообщения от NikolasGrad
 
Регистрация: 12.04.2012
Сообщений: 49

VK.Api.call('photos.getWallUploadServer', {
    uid : uid
},
не понятно откуда uid ?
Ладно, если глобальный.
Ответить с цитированием
  #7 (permalink)  
Старый 01.11.2012, 14:51
Интересующийся
Отправить личное сообщение для uberchel Посмотреть профиль Найти все сообщения от uberchel
 
Регистрация: 28.10.2010
Сообщений: 20

Сообщение от NikolasGrad Посмотреть сообщение
VK.Api.call('photos.getWallUploadServer', {
    uid : uid
},
не понятно откуда uid ?
Ладно, если глобальный.
Да, вы правы, он глобальный - это ид пользователя вконтакте, с которого и отправляешь.
Проблема стает после photos.getWallUploadServer - мы получаем ссылку для загрузки картинки, но вот тут и образуется тормоз на пути прогресса, по этому запросу даже если не задавать не каких параметров, при посылки пост запроса, статут возвращает error, такое чувство, что сервер просто отказывается принимать свою же ссылку.
Ответить с цитированием
  #8 (permalink)  
Старый 02.11.2012, 00:46
Аватар для NikolasGrad
Аспирант
Отправить личное сообщение для NikolasGrad Посмотреть профиль Найти все сообщения от NikolasGrad
 
Регистрация: 12.04.2012
Сообщений: 49

VK.Api.call('photos.getWallUploadServer', {
	uid : uid_того_кому_отправляешь
}, function (answer) {
	up_url = answer.response.upload_url; // получаем upload_url, куда загружать фото
	$.post(up_url, // загружаем
	{
		photo : url_загружаемого_фото.jpg.png.gif
	}, function (request) { // параметры для сохранения
		request.uid = uid_того_кому_отправляешь;
		VK.Api.call('photos.saveWallPhoto', { // сохраняем
			request // передаем параметры полученные от post + uid_того_кому_отправляешь
		}, function (result) { // данные о сохраненном фото
			VK.Api.call('wall.post', { // постим на стену
				owner_id : result.owner_id,
				attachments : '<photo><' + result.owner_id + '>_<' + result.id + '>',
				message : 'фото для тебя '
			});
		});
	});
});

Последний раз редактировалось NikolasGrad, 02.11.2012 в 00:48.
Ответить с цитированием
  #9 (permalink)  
Старый 03.11.2012, 22:44
Аспирант
Отправить личное сообщение для Gamestop Посмотреть профиль Найти все сообщения от Gamestop
 
Регистрация: 25.05.2011
Сообщений: 93

каким макаром вы права установили при получении адреса загрузки файлов?, или если автоматический выставляются то как, где это настраивать?
Ответить с цитированием
  #10 (permalink)  
Старый 28.12.2012, 19:17
Интересующийся
Отправить личное сообщение для uberchel Посмотреть профиль Найти все сообщения от uberchel
 
Регистрация: 28.10.2010
Сообщений: 20

NikolasGrad, Я все это пробовал, все это заканчивается на пост запросе (

Gamestop, права ставятся при аутентификации апи:

VK.Auth.login(
authInfo, // функция калбэк
8199 //права
);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MVC vs API. Ваше мнение. B~Vladi Общие вопросы Javascript 58 19.10.2010 16:29
Как изменить размер картинки? Mihail Общие вопросы Javascript 1 25.10.2009 13:42