Vk API PHP:Как получить фото от пользователя?

180
04 декабря 2021, 12:10

Ну тоесть, мне нужно, если пользователь отправить фото, то бот его скачает, и сохранит, как такое реализовать?

Answer 1

Используйте следующие методы:

messages.getConversations - С параметром filter= unread - получите список диалогов с непрочитанными сообщениями. В результате этого запроса получаете и парсите JSOn. Вам необходим этот параметр "conversation": {"id": 144429723. Это ID диалога с непрочитанными сообщениями. Добавляете все ID в список или массив с которым вы будете работать в дальнейшем.

Ссылка на метод https://vk.com/dev/messages.getConversations

Для каждого из ID из списка вызываете метод messages.getHistory c параметром peer_id=2000000000 + id из списка с id диалогов

ссылка на метод https://vk.com/dev/messages.getHistory

В результате запроса вы получите JSON который содержит историю сообщений в данном диалоге. В данном JSON вы парсите все массивы "attachments". Нас интересуют все массивы в котором поле "type": "photo". В массиве "attachments" есть вложенный объект "photo": { в котором есть массив "sizes": [] который хранит объекты описывающие возможные размеры фотографий и ссылки на них.

Пример : "sizes": [{

"type": "s",

"url": "https://sun1-84.u...0be/oIhpqkn1jCo.jpg", "width": 75,

"height": 42

}

Определяетесь с нужным вам размером фотографии. По ссылке из поля "url" вы можете скачать фотографию.

READ ALSO
Передача данных из формы в mysql!

Передача данных из формы в mysql!

Помогите пожалуйста почему не работаетОшибка - Информация не занесена в базу данных

191
Ошибка array_diff(): Argument #1 is not an array

Ошибка array_diff(): Argument #1 is not an array

Чем вызвана ошибка array_diff(): Argument #1 is not an array?

194
PHP: Почему бд возврашает пустой ответ

PHP: Почему бд возврашает пустой ответ

Я слелал класс для облегчения работы с бд:

137
Selection from sql db with identical names

Selection from sql db with identical names

Подскажите, как исключить из запроса значения результатов по значению test, data которые не находятся в диапазоне, например (4, 9) в таблице данных

196