Загрузка фото в VK через API

  • Автор темы Автор темы Nightgarm
  • Дата начала Дата начала
У меня проблемы с Хеш даже через загрузку веб версии

даже поддержка ВК не знает в чем причина)
Не имея исходных данных - никто не будет знать причины.

ЗЫ проверьте DNSы на роутере.
 
Не имея исходных данных - никто не будет знать причины.

ЗЫ проверьте DNSы на роутере.
спс, попробую.

еще такой вопрос метод загрузка фотографий на стену группы photos.getWallUploadServer там так же нужно использовать "Ссылки из GAC".

приложил шаблон с методом photos.getWallUploadServer можете посмотреть, может что то забыл добавить и из-за это ошибка Хеш вылазит.
 

Вложения

Последнее редактирование:
Читайте внимательнее документацию к АПИ и все будет работать
Наконец то все заработало:-) Спасибо, пока сравнивал с вашим шаблонам нашел у себя 5 ошибок, из-за поиска одной проблемы не обращал внимания на другие, из-за которых проект выдавал различные ошибки))
 
Отсюда Вы парсите upload_url регулярным выражением
Код:
Развернуть Свернуть Копировать
(?<=\{"response":\{"upload_url":").*?(?=",)
Дальше используете замену \/ на / и приводите данный URL к нормальному, стандартному виду.
Выбираете картинку на компьютере, кладете ее локальный адрес в переменную (в моем примере это - {-Variable.img_path-})
Используете экшин загрузки Файлов. Это который такой серый. Вызываетеся таким способом:
Жмете правую кнопку мышки - Выбираете Действия, далее - Браузер - Настройки браузера - Файлы для загрузки на сервер.
Затем используете Пост запрос с типом данных - multipart
Код:
Развернуть Свернуть Копировать
------WebKitFormBoundary{-Variable.WebKitFormBoundary-}
Content-Disposition: form-data; name="file"; filename="{-Variable.WebKitFormBoundary-}.jpg"
Content-Type: image/jpeg
{-Variable.img_path-}
В результате будет ответ с photos_list, откуда Вы парсите регулярным выражением
Код:
Развернуть Свернуть Копировать
(?<="photos_list":").*(?=","aid")
Убираете из этой переменный символ \
Так же парсятся от туда данные переменных server и hash.
И далее используете метод - photos.save
С вышеполученными переменным.
И так делаете 100 раз.
А как засунуть во второй запрос не один, а три файла? Вроде по документации можно до пяти, но не работает(
 
А как засунуть во второй запрос не один, а три файла? Вроде по документации можно до пяти, но не работает(
Честно скажу не в курсе. Я просто делаю запросы на загрузку фоток столько раз сколько мне фоток надо загрузить и все.
 
Честно скажу не в курсе. Я просто делаю запросы на загрузку фоток столько раз сколько мне фоток надо загрузить и все.
В документации
Передайте файлы на адрес upload_url, полученный в предыдущем пункте, сформировав POST-запрос с полями file1-file5. Эти поля должны содержать изображения в формате multipart/form-data.

Но не хочет((
 
В документации
Передайте файлы на адрес upload_url, полученный в предыдущем пункте, сформировав POST-запрос с полями file1-file5. Эти поля должны содержать изображения в формате multipart/form-data.

Но не хочет((
Попробуй просто в экшин Загрузки картинки (Стандартный который) вставить переменную с указанием сразу пяти картинок (путей на компьютере).
И эту же переменную в а Пост запросе. Но это так - мысль. Не тестил я.
 
Нет, вообще ничего ПОСТ не возвращает(
Кстати, постит одну картинку без экшна Загрузка картинки
Придется, наверное, список прикручивать
 
Отсюда Вы парсите upload_url регулярным выражением
Код:
Развернуть Свернуть Копировать
(?<=\{"response":\{"upload_url":").*?(?=",)
Дальше используете замену \/ на / и приводите данный URL к нормальному, стандартному виду.
Выбираете картинку на компьютере, кладете ее локальный адрес в переменную (в моем примере это - {-Variable.img_path-})
Используете экшин загрузки Файлов. Это который такой серый. Вызываетеся таким способом:
Жмете правую кнопку мышки - Выбираете Действия, далее - Браузер - Настройки браузера - Файлы для загрузки на сервер.
Затем используете Пост запрос с типом данных - multipart
Код:
Развернуть Свернуть Копировать
------WebKitFormBoundary{-Variable.WebKitFormBoundary-}
Content-Disposition: form-data; name="file"; filename="{-Variable.WebKitFormBoundary-}.jpg"
Content-Type: image/jpeg
{-Variable.img_path-}
В результате будет ответ с photos_list, откуда Вы парсите регулярным выражением
Код:
Развернуть Свернуть Копировать
(?<="photos_list":").*(?=","aid")
Убираете из этой переменный символ \
Так же парсятся от туда данные переменных server и hash.
И далее используете метод - photos.save
С вышеполученными переменным.
И так делаете 100 раз.
Код:
Развернуть Свернуть Копировать
------WebKitFormBoundary{-Variable.WebKitFormBoundary-}
Content-Disposition: form-data; name="file"; filename="{-Variable.WebKitFormBoundary-}.jpg"
Content-Type: image/jpeg
{-Variable.img_path-}
А вот это обязательно указывать? И как вы вообще узнали, что вот такие вот слова нужно прописать? А переменная img_path зачем нужна? Что в ней должно лежать?
 
  • Оценить
Реакции: artur23
Код:
Развернуть Свернуть Копировать
------WebKitFormBoundary{-Variable.WebKitFormBoundary-}
Content-Disposition: form-data; name="file"; filename="{-Variable.WebKitFormBoundary-}.jpg"
Content-Type: image/jpeg
{-Variable.img_path-}
А вот это обязательно указывать? И как вы вообще узнали, что вот такие вот слова нужно прописать? А переменная img_path зачем нужна? Что в ней должно лежать?
Конечно обязательно. Так сервер понимает что вы от него хотите.
Узнал я из сниффера.
В данной переменной лежит путь до фотографии на компьютере, которую мы будем загружать.
Более подробнее можете посмотреть в моей конкурсной статье - тут
 
Последнее редактирование:
Конечно обязательно. Так сервер понимает что вы от него хотите.
Узнал я из сниффера.
В данной переменной лежит путь до фотографии на компьютере, которую мы будем загружать.
Более подробнее можете посмотреть в моей конкурсной статье - тут
Ссылку забыл поставить)))
 
Security Breach2 ... единственное, что получаю в ответ. Статью конкурсную от корки до корки изучил, но делал по своему.
 
Security Breach2 ... единственное, что получаю в ответ. Статью конкурсную от корки до корки изучил, но делал по своему.
Замените в upload_url (ссылка для загрузки, которую получаете после первого запроса) amp; на пустоту.
Эти символы лишние в ней, и не дают Вам сделать то, что хотите.
 
  • Оценить
Реакции: Raids
Замените в upload_url (ссылка для загрузки, которую получаете после первого запроса) amp; на пустоту.
Эти символы лишние в ней, и не дают Вам сделать то, что хотите.

Офигеть как благодарен, 2 дня искал ответ...
 
Код:
Развернуть Свернуть Копировать
------WebKitFormBoundary{-Variable.WebKitFormBoundary-}
Content-Disposition: form-data; name="file"; filename="{-Variable.WebKitFormBoundary-}.jpg"
Content-Type: image/jpeg
{-Variable.img_path-}
А вот это обязательно указывать? И как вы вообще узнали, что вот такие вот слова нужно прописать? А переменная img_path зачем нужна? Что в ней должно лежать?
Не подскажите, откуда это взять?
------WebKitFormBoundary{-Variable.WebKitFormBoundary-}

А то у меня постоянно выходит: [] в значении photolist
 
Наконец то все заработало:-) Спасибо, пока сравнивал с вашим шаблонам нашел у себя 5 ошибок, из-за поиска одной проблемы не обращал внимания на другие, из-за которых проект выдавал различные ошибки))

Подскажи, плиз, как добился того, что заработало. Я застрял на этапе передачи параметра photo. В каком виде его надо передать, чтобы приняло?

Я передаю вот в таком в поле данные POST запросом:
Код:
Развернуть Свернуть Копировать
"[{"photo":"53a48bbda7:z","sizes":[["s",834202529,"f85a1","JLt7EiWCBI8",64,75],["m",834202529,"f85a2","VxzCbacedmA",111,130],["x",834202529,"f85a3","XwXj6lRrZtQ",517,604],["y",834202529,"f85a4","lCvdjfwY-fI",691,807],["z",834202529,"f85a5","XFAolN2j7s8",822,960],["o",834202529,"f85a6","hUg0jeUYNBI",130,152],["p",834202529,"f85a7","nGTEdnhOcf4",200,234],["q",834202529,"f85a8","i-ZUQtqVRCs",320,374],["r",834202529,"f85a9","dPATdeK5R6E",510,596]],"latitude":0,"longitude":0,"kid":"9ee22b3c49f6516b9648625a28d54a4a"

Соответственно, сервер и хэш передается только значением, и, скорее всего, с ними всё нормально. А с этим ничего не выходит
 
Или если кто-то знает как из этих данных собрать прямую ссылку на фото, буду тоже благодарен
 
Я передаю вот в таком в поле данные POST запросом:
Код:
Развернуть Свернуть Копировать
"[{"photo":"53a48bbda7:z","sizes":[["s",834202529,"f85a1","JLt7EiWCBI8",64,75],["m",834202529,"f85a2","VxzCbacedmA",111,130],["x",834202529,"f85a3","XwXj6lRrZtQ",517,604],["y",834202529,"f85a4","lCvdjfwY-fI",691,807],["z",834202529,"f85a5","XFAolN2j7s8",822,960],["o",834202529,"f85a6","hUg0jeUYNBI",130,152],["p",834202529,"f85a7","nGTEdnhOcf4",200,234],["q",834202529,"f85a8","i-ZUQtqVRCs",320,374],["r",834202529,"f85a9","dPATdeK5R6E",510,596]],"latitude":0,"longitude":0,"kid":"9ee22b3c49f6516b9648625a28d54a4a"

Соответственно, сервер и хэш передается только значением, и, скорее всего, с ними всё нормально. А с этим ничего не выходит

Добавь C# код:

Код:
Развернуть Свернуть Копировать
var encoded = System.Web.HttpUtility.UrlEncode(project.Variables["photo"].Value);
return encoded;

потом сохраняешь https://api.vk.com/method/photos.saveWallPhoto
 
Так же столкнулся с проблемой загрузки главного фото в профиль по API, выдает 1 ошибку 129
Код:
Развернуть Свернуть Копировать
{"error":{"error_code":129,"error_msg":"Invalid photo","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"photos.saveOwnerPhoto"},{"key":"server","value":"999,hash=7448f93f405dfd5c444f5d4aabb84942,photo=eyJlcnJvciI6IkVSUl9VUExPQURfRklMRV9OT1RfVVBMT0FERUQ6IG5vIFwiZmlsZVwiIGZpbGUiLCJid2FjdCI6Im93bmVyX3Bob3RvIiwic2VydmVyIjo4NDk1MjgsIm1pZCI6MzIxODAyOTI1LCJfc2lnIjoiNTZjYjJhNjhhODIwYWIyMWY1NmRmNzgwMTQ2MWYxM2YifQ"},{"key":"v","value":"5.52"}]}}

Вот что делаю, по шагам:
1. https://api.vk.com/method/photos.getOwnerPhotoUploadServer?&access_token={-Variable.token-}&v=5.52
2. Заливаю на полученный адрес post запросом фото: "photo": "{-Project.Directory-}\img\male\7866.jpg"
3. Сохраняю фото https://api.vk.com/method/photos.sa...hoto-}&access_token={-Variable.token-}&v=5.52 и тут выскакивает ошибка.
Может кто знает, в чем проблема или что не так делаю ?
 
Получается фото привязано к аккаунту и группе?, по этому fotoid только этот акк может постить, на который получали?, нельзя никак сделать, чтоб фото можно было постить разными акками без постоянного выполнения этой мутотни)), типа узнали, типа как тут описано, fotoid, и можно было это фото по этому id постить разными акками, без получения каждый раз fotoid на данный акк?
 
Отсюда Вы парсите upload_url регулярным выражением
Код:
Развернуть Свернуть Копировать
(?<=\{"response":\{"upload_url":").*?(?=",)
Дальше используете замену \/ на / и приводите данный URL к нормальному, стандартному виду.
Выбираете картинку на компьютере, кладете ее локальный адрес в переменную (в моем примере это - {-Variable.img_path-})
Используете экшин загрузки Файлов. Это который такой серый. Вызываетеся таким способом:
Жмете правую кнопку мышки - Выбираете Действия, далее - Браузер - Настройки браузера - Файлы для загрузки на сервер.
Затем используете Пост запрос с типом данных - multipart
Код:
Развернуть Свернуть Копировать
------WebKitFormBoundary{-Variable.WebKitFormBoundary-}
Content-Disposition: form-data; name="file"; filename="{-Variable.WebKitFormBoundary-}.jpg"
Content-Type: image/jpeg
{-Variable.img_path-}
В результате будет ответ с photos_list, откуда Вы парсите регулярным выражением
Код:
Развернуть Свернуть Копировать
(?<="photos_list":").*(?=","aid")
Убираете из этой переменный символ \
Так же парсятся от туда данные переменных server и hash.
И далее используете метод - photos.save
С вышеполученными переменным.
И так делаете 100 раз.

Здравствуйте!
как выглядит ссылка или данные "server"
 
В PM всё работает отлично.
В ZP выдаётся ошибка в параметре name...
image.png
 
А теперь вообще тоже самое на экшне установки переменной...
Подскажите, в чём проблема?
sf.png
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)