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

Sergo_Sev

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

И второй вопрос - можно ли добавить картинку в переписку при отправке сообщения (есть скрипт для отправки сообщений и нужно прикрепить в сообщения картинку, находящуюся на стороннем сервере)?
Т.е. добавить сделать так, что бы сообщение приходило сразу с картинкой и без процесса "загрузили картинку, подождали, отправили сообщение"
 
Вот нашел я код и как мне его прикрутить к моему коду и куда? И вообще будет ли это работать?
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=
 
Последнее редактирование:
Есть приготовить картинку к постингу на стену - а поста на стену не будет, что через какое-то время картинка удалится.

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

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

Пример запроса: Для просмотра ссылки Войди или Зарегистрируйся

В большинстве методов нужен access_token, его нужно в параметрах указывать
 
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( $curl, CURLOPT_URL, $upload_url );
        curl_setopt( $curl, CURLOPT_RETURNTRANSFER, TRUE );
        curl_setopt( $curl, CURLOPT_POSTFIELDS, $post_fields );
        $out = curl_exec( $curl );
        curl_close( $curl );
        unlink( $name );
     
        $json = JSON_DECODE( $out, true );

        $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 у Вас всё будет, а класс за денюжку :)

Но можно и так разобраться
 
можно и так разобраться

Мне не даёт покоя вот эта строка $name = __DIR__.'/cache/filename.jpg';
Можно ли загрузить файл сразу с удаленного сервера по http ссылке через file_get_contents?
У меня работает только с файлами на локальном сервере
 
Мне не даёт покоя вот эта строка $name = __DIR__.'/cache/filename.jpg';
Можно ли загрузить файл сразу с удаленного сервера по http ссылке через file_get_contents?
У меня работает только с файлами на локальном сервере
Точно не знаю, но у меня тоже с удаленного сервера не получилось, поэтому сделал так...
 
Назад
Сверху