Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/70: Рейтинг темы: голосов - 70, средняя оценка - 4.84
 Аватар для Muhammad97
10 / 10 / 2
Регистрация: 10.11.2013
Сообщений: 238

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

08.07.2014, 00:13. Показов 14199. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пытаюсь загрузить фото в альбом с помощью VK API. Загрузка фотографий на сервер ВКонтакте от имени пользователя осуществляется приложением в 3 этапа:

1. С помощью метода photos.getUploadServer приложение узнает http-адрес для загрузки фотографий в зависимости от альбома, в который их необходимо загрузить.

2. Приложение формирует POST-запрос на полученный адрес.
Запрос должен содержать поля file1-file5, которые содержат файлы с изображениями (JPG, PNG, BMP или GIF).

В ответ приложение получает следующие данные в формате JSON:

JSON Скопировано
1
{"server": '1', "photos_list": '2,3,4', "album_id": '5', "hash": '12345abcde'}
1. Получаю url для загрузки
2. На этом шаге начинаются проблемы:
PHP Скопировано
1
2
3
4
5
6
7
8
9
10
11
  $files = array('file1'=>'@'.$FILENAME);
 
  $ch = curl_init($upload_url);
  //curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $files); 
  $response = curl_exec($ch);
 
  echo $response;
Выводит:

JSON Скопировано
1
{"server":618431,"photos_list":"[{\"photo\":\"8866c69e21:x\",\"sizes\":[[\"s\",\"618431979\",\"ef81\",\"cfNZTCEvygI\",66,75],[\"m\",\"618431979\",\"ef82\",\"zLDFPTo1vJM\",115,130],[\"x\",\"618431979\",\"ef83\",\"8W1WQKx4BLU\",429,486],[\"o\",\"618431979\",\"ef84\",\"f91ktq6nvZ0\",130,147],[\"p\",\"618431979\",\"ef85\",\"mx4ZCg4WV8s\",200,227],[\"q\",\"618431979\",\"ef86\",\"3YHvPvQewlo\",320,363],[\"r\",\"618431979\",\"ef87\",\"8dq7s4RT1_Y\",429,486]],\"kid\":\"9973d40cae2dca9555553cb147ab8dd5\"}]","aid":198717486,"hash":"03932de1945ae9e9173ad7912b8cf0bd","gid":73685349}
Запрос, вроде бы, сформирован правильно. Подскажите, в чем ошибка?
1
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.07.2014, 00:13
Ответы с готовыми решениями:

Загрузка фото
Добрый вечеря делаю ресайз изображений при помощи класса. Дело в том что там используются функции из GD и я так понял из-за этого сильно...

Безопасная загрузка фото
Подскажите пожалуйста, безопасен и актуален ли данный код (загрузка фото): if(isset($_FILES)){ $path_images = 'images';//папка,...

Загрузка фото на сервер
данные код позволяет загрузить txt файлы , но не jpg. в чем может быть причина ? if(!empty($_FILES)){ $path = 'uploads/'; //...

6
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
259 / 223 / 109
Регистрация: 07.07.2014
Сообщений: 965
08.07.2014, 00:36
Так и ответ сформирован правильно. Дальше нужно вызвать метод photos.save() и фотографии сохранятся на серверах.
1
 Аватар для Muhammad97
10 / 10 / 2
Регистрация: 10.11.2013
Сообщений: 238
08.07.2014, 13:58  [ТС]
Вызывал photos.save, ответ:
JSON Скопировано
1
{"error":{"error_code":100,"error_msg":"One of the parameters specified was missing or invalid: photos_list is invalid","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"photos.save"},{"key":"access_token","value":"6efea642f3bb4a4bce99374f9be4a0e7e015d7693d859513813db0cb9a3dc5bff86e3ef53ee417429879c"},{"key":"album_id","value":"198717486"},{"key":"group_id","value":"73685349"},{"key":"hash","value":"0fe2e7ef277ed2df2facf5cd2f2d2dbd"},{"key":"server","value":"617928"},{"key":"caption","value":"Description"}]}}
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
259 / 223 / 109
Регистрация: 07.07.2014
Сообщений: 965
08.07.2014, 15:27
Значит неправильно вызываете photos.save, покажите его код вызова.
0
 Аватар для Muhammad97
10 / 10 / 2
Регистрация: 10.11.2013
Сообщений: 238
08.07.2014, 15:41  [ТС]
PHP Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function GET($url)
{
  $useragent='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3';
 
 
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, false);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  $result=curl_exec($ch);
  curl_close($ch);
  
  return $result;
}
 
function API_Request($method, $parameters)
{
//method - метод API
//parameters - ассоциативный массив или строка с параметрами
 
  if (is_array($parameters))
  $url = 'https://api.vkontakte.ru/method/'.$method.'?'.http_build_query($parameters);
  else
  $url = 'https://api.vkontakte.ru/method/'.$method.'?'.$parameters;
 
  $response = GET($url);
 
  return $response;
 
}
 
 $parameters = array(
'access_token'=>$token,
'album_id'=>$album_id,
'group_id'=>$group_id,
'hash'=>$temp['hash'],
'server'=>$temp['server'],
'caption'=>$caption
);
 
 $response = API_Request('photos.save', $parameters);
  
 echo $response;
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
259 / 223 / 109
Регистрация: 07.07.2014
Сообщений: 965
08.07.2014, 15:53
Лучший ответ Сообщение было отмечено Muhammad97 как решение

Решение

Цитата Сообщение от Muhammad97 Посмотреть сообщение
photos_list is invalid
Вот же он вам ругается. А знаете почему? - Потому что вы его не отправляете.. =)

Посмотрите внимательно в документации: https://vk.com/dev/photos.save
0
 Аватар для Muhammad97
10 / 10 / 2
Регистрация: 10.11.2013
Сообщений: 238
08.07.2014, 15:57  [ТС]
Спасибо, исправил:

PHP Скопировано
1
2
3
4
5
6
7
8
9
 $parameters = array(
'access_token'=>$token,
'album_id'=>$album_id,
'group_id'=>$group_id,
'hash'=>$temp['hash'],
'server'=>$temp['server'],
'photos_list'=>$temp['photos_list'],
'caption'=>$caption
);
Загрузилось
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.07.2014, 15:57
Помогаю со студенческими работами здесь

Загрузка фото на сайт
Подскажите пожалуйста, как сделать загрузку юзерами фото на сайт?

Загрузка фото для фотогалереи
Как изменить код загрузки фото таким образом чтобы загружаемые скопом файлы поучали нумерацию: "1", "2", "3",...

Загрузка нескольких фото сразу
<?php $data = $_POST; if (isset($data)) print_r($_FILES); ?> <form name="add_ad" action="/add_ads.php" method="post"...

Загрузка фото на сайт для галлереии
<body> <form method="post" action="" enctype="multipart/form-data"> <label>File:</label> <input type="file" name="file"> <input...

загрузка фото в любое место текста
Привет! Незнаю куда копать, подскажите как такое можно реализовать, может идеями, а может кто какой туториал видел или кусок кода. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Списки и кортежи в Python: различия, особенности, применение
py-thonny 13.04.2025
Python славится своей гибкостью при работе с данными. В арсенале языка есть две основные последовательные структуры данных, которые программисты используют ежедневно — списки и кортежи. Эти структуры. . .
Middleware в ASP.NET Core
UnmanagedCoder 13.04.2025
В ASP. NET Core термин "middleware" занимает особое место. Что же это такое? Middleware представляет собой программные компоненты, которые формируют конвейер обработки HTTP-запросов в приложении. . . .
Таблицы лута в Unity с MinMaxCurve и AnimationCurve
GameUnited 12.04.2025
Создание сбалансированного лута в играх — задача не из простых. Разработчики постоянно ищут способы настройки систем выпадения предметов, которые будут одновременно справедливыми для игроков и. . .
std::expected в C++: Управление ошибками
bytestream 12.04.2025
Обработка ошибок всегда была важной и одновременно сложной задачей в программировании на C++. На протяжении долгого времени разработчики использовали различные подходы: возвращаемые коды ошибок,. . .
Nullable типы и операторы объединения null в C#
UnmanagedCoder 12.04.2025
Многие шутят, что null — это миллиардная ошибка в программировании. И в этой шутке только доля шутки. Тони Хоар, создатель null-ссылки, сам назвал её своей "ошибкой на миллиард долларов". Почему?. . .
Аутентификация и авторизация JWT в микросервисах с API Gateway
stackOverflow 12.04.2025
В традиционных монолитных приложениях безопасность часто реализуется как единый защитный периметр - пользователь проходит аутентификацию один раз, после чего получает доступ ко всем функциям системы. . . .
TypeScript: Интерфейсы vs Типы
run.dev 11.04.2025
Современная разработка на JavaScript сталкивается с множеством проблем при масштабировании проектов. Типизация кода стала хорошим инструментом, помогающим избежать ошибок во время выполнения,. . .
Управление топиками и разделами Kafka
Javaican 11.04.2025
Apache Kafka — распределенная платформа потоковой передачи данных, которая стала стандартом для построения высоконагруженных систем обмена сообщениями. В современной архитектуре микросервисов,. . .
Миграция монолита в Event-Driven микросервисную архитектуру на C#
stackOverflow 11.04.2025
Монолитная архитектура – классический подход к разработке программного обеспечения. Это приложение, построенное как единое целое, где все компоненты тесно связаны между собой. Большинство проектов. . .
Go в Kubernetes: Управление ресурсами
golander 11.04.2025
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер