Как загрузить картинку через VK API ?

Тема в разделе "Как сделать...", создана пользователем Sergo_Sev, 7 июн 2015.

  1. Sergo_Sev

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    188
    Подскажите, как можно загрузить картинку в контакт через VK API ? Интересует готовый пример т.к. не разобрался как работает загрузка файлов в контакте

    И второй вопрос - можно ли добавить картинку в переписку при отправке сообщения (есть скрипт для отправки сообщений и нужно прикрепить в сообщения картинку, находящуюся на стороннем сервере)?
    Т.е. добавить сделать так, что бы сообщение приходило сразу с картинкой и без процесса "загрузили картинку, подождали, отправили сообщение"
     
  2. metsys

    metsys

    Регистр.:
    27 апр 2014
    Сообщения:
    450
    Симпатии:
    434
  3. Sergo_Sev

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    188
    Вот нашел я код и как мне его прикрутить к моему коду и куда? И вообще будет ли это работать?
    PHP:
    $link $upl_url["response"]["upload_url"];
        
    $lala dirname(__FILE__)."/112.jpg";
        
    $cfile curl_file_create($lala,'image/jpeg','test_name.jpg');
        
        
    $curl=curl_init();
          
    curl_setopt_array($curl, array(
            
    CURLOPT_RETURNTRANSFER => 1,
            
    CURLOPT_URL => $link,
            
    CURLOPT_POST => 1,
            
    CURLOPT_POSTFIELDS => array("photo" => $cfile)
          ));
    Сообщение отправляю так
    Перейти по ссылке"Заголовок"&message="Сообщение"&access_token=
     
    Последнее редактирование: 7 июн 2015
  4. Tonne

    Tonne Создатель

    Заблокирован
    Регистр.:
    17 июл 2012
    Сообщения:
    39
    Симпатии:
    57
  5. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    385
    Симпатии:
    254
    Есть приготовить картинку к постингу на стену - а поста на стену не будет, что через какое-то время картинка удалится.

    Я загружал для этого в альбом группы через API

    Все методы: Перейти по ссылке
    Получение токена: Перейти по ссылке

    Пример запроса: Перейти по ссылке

    В большинстве методов нужен access_token, его нужно в параметрах указывать
     
    Sergo_Sev нравится это.
  6. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    385
    Симпатии:
    254
    PHP:
           $aid ID альбома;
            
    $gid ID группы;


            
    $server $this->api'photos.getUploadServer', array( 'album_id' => $aid'group_id' => $gid ) );
            
    $upload_url $server['response']['upload_url'];
         
            
    $name __DIR__.'/cache/filename.jpg';
            if( !
    copy$src$name ) ){
                return 
    false;
            }
            
    $post_fields = array( 'file1' => curl_file_create$name ) );
            
    $curl curl_init();
            
    curl_setopt$curlCURLOPT_URL$upload_url );
            
    curl_setopt$curlCURLOPT_RETURNTRANSFERTRUE );
            
    curl_setopt$curlCURLOPT_POSTFIELDS$post_fields );
            
    $out curl_exec$curl );
            
    curl_close$curl );
            
    unlink$name );
         
            
    $json JSON_DECODE$outtrue );

            
    $json $this->api'photos.save', array( 'album_id' => $json['aid'], 'group_id' => $json['gid'], 'server' => $json['server'], 'photos_list' => $json['photos_list'], 'hash' => $json['hash'], 'caption' => $att['tags'] ) );
         
            if( isset(
    $json['response'][0]['owner_id']) and isset($json['response'][0]['id']) )
            
    $res 'photo' .$json['response'][0]['owner_id'] .'_' .$json['response'][0]['id'];
            
    И в $json у Вас всё будет, а класс за денюжку :)

    Но можно и так разобраться
     
    Sergo_Sev нравится это.
  7. Sergo_Sev

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    188
    Мне не даёт покоя вот эта строка $name = __DIR__.'/cache/filename.jpg';
    Можно ли загрузить файл сразу с удаленного сервера по http ссылке через file_get_contents?
    У меня работает только с файлами на локальном сервере
     
  8. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    385
    Симпатии:
    254
    Точно не знаю, но у меня тоже с удаленного сервера не получилось, поэтому сделал так...