J
J
Jasur00902020-02-20 13:35:03
PHP
Jasur0090, 2020-02-20 13:35:03

How to upload a document by Api Vk?

<?php
define('VK_ACCESS_TOKEN', 'xxx');
define('VK_API_VERSION', 5.103);

$ch = curl_init();
$parameters = http_build_query([
    'access_token' => VK_ACCESS_TOKEN, // access_token / ключ доступа
    'v'            => VK_API_VERSION, // версия API
    'group_id'     => xxx // ID группы
]);

curl_setopt($ch, CURLOPT_URL, 'https://api.vk.com/method/docs.getUploadServer?' . $parameters);
curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$curl_result = json_decode(curl_exec($ch), TRUE); 


curl_close($ch);



$ch = curl_init();
$parameters = ['file' => new CURLFile('m.pdf', 'multipart/form-data')];

curl_setopt($ch, CURLOPT_URL, $curl_result['response']['upload_url']);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, TRUE);
                                                
$upload = curl_exec( $ch );

$file1 = json_decode($upload, TRUE);
$file = $upload['file'];




$ch = curl_init();
$parameters = http_build_query([
    'name'           => 'm',
    'file'           => $file,
    'title'  => 'Исчерпывающее описание нашей первой видеозаписи.'
]);
curl_setopt($ch, CURLOPT_URL, 'https://api.vk.com/method/docs.save?' . $parameters);
curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$curl_result = json_decode(curl_exec($ch), TRUE); // превращаем JSON-массив, который нам вернул VK, в обычный PHP-массив


curl_close($ch);




if (isset($curl_result['error'])) {
    exit('Строка ' . __LINE__ . ': Ошибка при загрузке на серверы ВК: ' . $curl_result['error'] . '.');
}
?>

I can't figure out how to save using the docs.save method...

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question