Всем привет, пишу сейчас чат-бота для ВК. Возникла проблема с пересылкой фотографий. Вот допустим, юзер кидает фотку в чат, а бот пересылает ее другому юзеру. Запрос бота при отправке такой:
{"type":"message_new","object":{"date":1541772226,"from_id":515748911,"id":1586,"out":0,"peer_id":515748911,"text":"","conversation_message_id":371,"fwd_messages":[],"important":false,"random_id":0,"attachments":[{"type":"photo","photo":{"id":456239024,"album_id":-7,"owner_id":515748911,"sizes":[{"type":"m","url":"https:\/\/pp.userapi.com\/c850724\/v850724663\/3e36e\/dPbSjy59_BM.jpg","width":130,"height":97},{"type":"o","url":"https:\/\/pp.userapi.com\/c850724\/v850724663\/3e373\/7Lks-XZ9ROY.jpg","width":130,"height":98},{"type":"p","url":"https:\/\/pp.userapi.com\/c850724\/v850724663\/3e374\/-QOqdUabCUc.jpg","width":200,"height":150},{"type":"q","url":"https:\/\/pp.userapi.com\/c850724\/v850724663\/3e375\/fZk3o3VPY_c.jpg","width":320,"height":240},{"type":"r","url":"https:\/\/pp.userapi.com\/c850724\/v850724663\/3e376\/OXRSuP3Gl6c.jpg","width":510,"height":383},{"type":"s","url":"https:\/\/pp.userapi.com\/c850724\/v850724663\/3e36d\/wSGIBiVpl4E.jpg","width":75,"height":56},{"type":"w","url":"https:\/\/pp.userapi.com\/c850724\/v850724663\/3e372\/LVHf34nZKbI.jpg","width":2048,"height":1536},{"type":"x","url":"https:\/\/pp.userapi.com\/c850724\/v850724663\/3e36f\/-qTq88DLk3I.jpg","width":604,"height":453},{"type":"y","url":"https:\/\/pp.userapi.com\/c850724\/v850724663\/3e370\/aXoAwx5zmkQ.jpg","width":807,"height":605},{"type":"z","url":"https:\/\/pp.userapi.com\/c850724\/v850724663\/3e371\/SYgSSqGFpio.jpg","width":1280,"height":960}],"text":"","date":1541622877,"post_id":2,"access_key":"fdf818b8a9719e5fc2"}}],"is_hidden":false},"group_id":173657849}
Я вот таким методом, определяю что это фото/видео и достаю id , owner_id и access_key:
if(isset($data->object->attachments[0]->type)){
$type_attach = $data->object->attachments[0]->type;
switch ($type_attach) {
case 'photo':
$id_photo = $data->object->attachments[0]->photo->id;
$owner_id = $data->object->attachments[0]->photo->owner_id;
$access_key = $data->object->attachments[0]->photo->access_key;
$attachment = "photo{$owner_id}_{$id_photo}_{$access_key}";
break;
case 'video':
$id_video = $data->object->attachments[0]->video->id;
$owner_id = $data->object->attachments[0]->video->owner_id;
$access_key = $data->object->attachments[0]->video->access_key;
$attachment = "video{$owner_id}_{$id_video}_{$access_key}";
break;
case 'doc':
$url_doc = $data->object->attachments[0]->doc->url;
$message = "$message \n\n ????Документ: $url_doc";
$attachment =null;
break;
default:
$attachment =null;
break;
}
}
И создаю переменную attachmnet, если вложения нет, то она null.
И потом отправлю соответственно пользователю:
$vk->sendMessage($apponent,"😈 Собеседник: \n{$message}",$attachment);
Cама функция:
public function sendMessage($sendID,$message,$attachment=null){
if ($sendID != 0 and $sendID != '0') {
return $this->request('messages.send',array('message'=>$message, 'peer_id'=>$sendID , 'attachment' => $attachment));
} else {
return true;
}
}
И вот сообственно в чем беда.
Не все фотографии/видео пересылаются таким вот способом.
Вот отправляю я например фотку которая у меня есть на странице или видео из общего доступа, все гуд.
Отправляю фотографию которая у меня в сохраненках, она второму юзеру не пересылается, также и не песелылаются фотки, которые я гружу с телефона . Хотя с компа если загружаю, то некоторые пересылаются, некоторые нет, не могу понять, в чем проблема?
Знает может кто? Спасибо.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Всем привет, пишу сайт и в нём написал раздел Личные сообщенияПосещаешь страницу человека, и кнопка отправить сообщения
Есть условное приложение, которое позволяет записывать в БД сообщения с секретными кодами внутриСекретный код записывается внутри фигурных...
Не работает отправка в Jabber, как решить ошибку? Доброго времени суток, друзья!
Создал окно программы с пунктами и подпунктамиКаким образом можно оживить Кнопки? Например как сделать чтобы по нажатию на "Файл">"Выход"...