Задать вопрос
@crack_user

Как обойти ограничение в вк на получение фото?

Почему-то не могу получить больше 4 отправленных фотографий боту, скорее всего это ограничение в вк стоит, т.к при отправки 4 или меньше фотографий, я получал количество отправленных фото и выводилось нужно число(ну и сами фото загружались), но когда отправлял больше 4, то количество было рандомным и их было несколько, ну и сами фотографии загружались фиг пойми как, в общем начинался хаос -
(тут я отправил 5 фото и вывел количество полученных фото)
63550ac4332d7439853665.png
(тут я заново отправил 5 фото, и также вывел количество полученных фото)
63550b1dcb374468907288.png
Код -
<?
$group_id = $data->group_id;
$type = $data->object->message->attachments[0]->photo->id;
$count = count($data->object->message->attachments);//Получаем количество фотографий. 
// message($user_id,$count); die('OK'); // Тут выводилось количество полученных фотографий
for($i = 0; $i != $count; $i ++){//Бегаем по всем фотографиям. 
    if($data->object->message->attachments[$i]->type == 'photo'){
        //Переменные че ты сделал
        $colls ++;
        //
        $type = $data->object->message->attachments[$i]->photo->id;
        $sizes = $data->object->message->attachments[$i]->photo->sizes;
        $count_size = count($sizes);
        $h = 0;
        $m = 0;
        for($is = 0; $is != $count_size; $is ++){//ТВОЙ КОД 
            if($data->object->message->attachments[$i]->photo->sizes[$is]->height >= $h){
                $h = $data->object->message->attachments[$i]->photo->sizes[$is]->height;
                $m = $is;
            }
            if($data->object->message->attachments[$i]->photo->sizes[$is]->width >= $w){
                $w = $data->object->message->attachments[$i]->photo->sizes[$is]->width;
                $m = $is;
            }
        }//
        //ДЕЛИТ ССЫЛКУ ЧТОБЫ ПОЛУЧИТЬ ТИП ФАЙЛА 
        $url = $data->object->message->attachments[$i]->photo->sizes[$m]->url;
        $inf = explode('com/', $url);
        $inf = explode('.', $inf[1]);
        if(strpos($inf[1], '?') !== false){
            $inf = explode('?', $inf[1]);
            $tt = $inf[0];  
        }
        else{
            $tt = $inf[1];
        }
        //
        //Копирует
        if (!copy($url,'/web/www/site/bot/photo/'.$type.'.'.$tt)) {
            message($user_id,'К сожалению отправить фото не удалось');
            die('ok');
        }
        //
        //В массивы 
        $fils = 'file'.$colls;
        $fills_mass[$i] = $type.'.'.$tt;
        $mass_file[$fils] = new CURLFile('/web/www/site/bot/photo/'.$type.'.'.$tt); //$tt получает тип файла. PNG или же JPG - для дольнешего сохранения на сервер.
        //
    }
}
$request_params = array( 
    'group_id' => $group_id,
    'access_token' => $token,
    'v' => '5.81'
); 
$date = http_build_query($request_params); 
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $date);
curl_setopt($ch, CURLOPT_URL,"https://api.vk.com/method/photos.getMessagesUploadServer?");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$result =  json_decode($result, 1);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $result['response']['upload_url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $mass_file);
$datas = json_decode(curl_exec($ch), true);
curl_close($ch);
$request_params = array( 
    'photo' => $datas['photo'],
    'server' => $datas['server'],
    'hash' => $datas['hash'],
    'access_token' => $token, 
    'v' => '5.81'
); 
$date = http_build_query($request_params); 
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $date);
curl_setopt($ch, CURLOPT_URL,"https://api.vk.com/method/photos.saveMessagesPhoto?");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$save =  json_decode($result, 1);
if($save['response'][0]['owner_id'] != 0){$text .= 'photo'.$save['response'][0]['owner_id'].'_'.$save['response'][0]['id'].'_'.$save['response'][0]['access_key'];}
if($save['response'][1]['owner_id'] != 0){$text .= ',photo'.$save['response'][1]['owner_id'].'_'.$save['response'][1]['id'].'_'.$save['response'][1]['access_key'];}
if($save['response'][2]['owner_id'] != 0){$text .= ',photo'.$save['response'][2]['owner_id'].'_'.$save['response'][2]['id'].'_'.$save['response'][2]['access_key'];}
if($save['response'][3]['owner_id'] != 0){$text .= ',photo'.$save['response'][3]['owner_id'].'_'.$save['response'][3]['id'].'_'.$save['response'][3]['access_key'];}
if($save['response'][4]['owner_id'] != 0){$text .= ',photo'.$save['response'][4]['owner_id'].'_'.$save['response'][4]['id'].'_'.$save['response'][4]['access_key'];}
if($save['response'][5]['owner_id'] != 0){$text .= ',photo'.$save['response'][5]['owner_id'].'_'.$save['response'][5]['id'].'_'.$save['response'][5]['access_key'];}
if($save['response'][6]['owner_id'] != 0){$text .= ',photo'.$save['response'][6]['owner_id'].'_'.$save['response'][6]['id'].'_'.$save['response'][6]['access_key'];}
if($save['response'][7]['owner_id'] != 0){$text .= ',photo'.$save['response'][7]['owner_id'].'_'.$save['response'][7]['id'].'_'.$save['response'][7]['access_key'];}
if($save['response'][8]['owner_id'] != 0){$text .= ',photo'.$save['response'][8]['owner_id'].'_'.$save['response'][8]['id'].'_'.$save['response'][8]['access_key'];}
if($save['response'][9]['owner_id'] != 0){$text .= ',photo'.$save['response'][9]['owner_id'].'_'.$save['response'][9]['id'].'_'.$save['response'][9]['access_key'];}
$request_params = array( 
    'peer_id' => $user['chat_user'],
    'attachment' => $text,
    'access_token' => $token, 
    'v' => '5.81'
); 
$date = http_build_query($request_params); 
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $date);
curl_setopt($ch, CURLOPT_URL,"https://api.vk.com/method/messages.send?");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$result =  json_decode($result, 1);
$count = count($fills_mass);
for($i = 0; $i != $fills_mass; $i ++){
    unlink('/web/www/site/bot/photo/'.$fills_mass[$i]);
}
//Теперь будет удалться.*/
die('OK');
  • Вопрос задан
  • 65 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы