31.10.2012, 00:17
|
Интересующийся
|
|
Регистрация: 28.10.2010
Сообщений: 20
|
|
Api в контакте, постинг картинки на стену
Доброе время суток, собственно столкнулся с тем, что не как не могу
отправить пост запрос на сервер вк.
получаю ссылку для загрузки методом photos.getUploadServer, после чего надо отправить пост запрос, отправляю, но там надо в параметрах указывать не ссылку на картинку, а multipart/form-data, как её получить ? недопру никак, не хотелось бы использовать пхп.
|
|
31.10.2012, 12:23
|
|
Аспирант
|
|
Регистрация: 12.04.2012
Сообщений: 49
|
|
Покажите код
|
|
31.10.2012, 22:24
|
Интересующийся
|
|
Регистрация: 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>');
});
}
|
|
31.10.2012, 22:27
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
если сделать <input type="file> и саму форму, то можно будет отправить ... только тогда придётся самому файл выбирать
|
|
31.10.2012, 22:32
|
Интересующийся
|
|
Регистрация: 28.10.2010
Сообщений: 20
|
|
файл - это фотка в фотогалереи, на странице полного материала будет эта кнопка, при нажатии которой, будет выходить окно, в котором выбираем кому отправить и отправляем, вообще скрипт работает отлично, если без картинки, но вот все проблема том, что это фотогалерея и картинка необходима.
пробовал я создавать форму через скрипт, но не чего не выходит, я уже просто в тупике.
|
|
01.11.2012, 03:13
|
|
Аспирант
|
|
Регистрация: 12.04.2012
Сообщений: 49
|
|
VK.Api.call('photos.getWallUploadServer', {
uid : uid
},
не понятно откуда uid ?
Ладно, если глобальный.
|
|
01.11.2012, 14:51
|
Интересующийся
|
|
Регистрация: 28.10.2010
Сообщений: 20
|
|
Сообщение от NikolasGrad
|
VK.Api.call('photos.getWallUploadServer', {
uid : uid
},
не понятно откуда uid ?
Ладно, если глобальный.
|
Да, вы правы, он глобальный - это ид пользователя вконтакте, с которого и отправляешь.
Проблема стает после photos.getWallUploadServer - мы получаем ссылку для загрузки картинки, но вот тут и образуется тормоз на пути прогресса, по этому запросу даже если не задавать не каких параметров, при посылки пост запроса, статут возвращает error, такое чувство, что сервер просто отказывается принимать свою же ссылку.
|
|
02.11.2012, 00:46
|
|
Аспирант
|
|
Регистрация: 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.
|
|
03.11.2012, 22:44
|
Аспирант
|
|
Регистрация: 25.05.2011
Сообщений: 93
|
|
каким макаром вы права установили при получении адреса загрузки файлов?, или если автоматический выставляются то как, где это настраивать?
|
|
28.12.2012, 19:17
|
Интересующийся
|
|
Регистрация: 28.10.2010
Сообщений: 20
|
|
NikolasGrad, Я все это пробовал, все это заканчивается на пост запросе (
Gamestop, права ставятся при аутентификации апи:
VK.Auth.login(
authInfo, // функция калбэк
8199 //права
);
|
|
|
|