Работа с API Вконтакте для StandAlone приложений на языке php.
Для работы с api вам необходимо выполнить несколько действий:
- Создать "Standalone-приложение" https://vk.com/editapp?act=create
- Получить access_token (об этом ниже)
- Классу нужно передать client_id приложения и секретный ключ который вам даётся при создании приложения
Выполним метод get_code_token для получения ссылки которая вернёт нам code
include_once 'vk.php';
$v = new Vk(array(
'client_id' => 12345, // (обязательно) номер приложения
'secret_key' => 'XXXXXX', // (обязательно) получить тут https://vk.com/editapp?id=12345§ion=options где 12345 - client_id
'user_id' => 12345, // ваш номер пользователя в вк
'scope' => 'wall', // права доступа
'v' => '5.35' // не обязательно
));
$url = $v->get_code_token();
echo $url;
Переменная $url будет содержать ссылку при переходе на которую вас попросят авторизоваться и предоставить права приложению, после чего вас перекинут на пустую страницу и в URL будет access_token=нужный код.
Для выполнения определённых Api вам необходимы на это права, для этого при создании токена нужно указать нужные scope.
$config['secret_key'] = 'ваш секретный ключ приложения';
$config['client_id'] = 12345; // номер приложения
$config['user_id'] = 12345; // id текущего пользователя (не обязательно)
$config['access_token'] = 'ваш токен доступа';
$config['scope'] = 'wall,photos,video'; // права доступа к методам (для генерации токена)
$v = new Vk($config);
// пример публикации сообщения на стене пользователя
// значения массива соответствуют значениям в Api https://vk.com/dev/wall.post
$response = $v->api('wall.post', array(
'message' => 'I testing API form https://github.com/fdcore/vk.api'
));
// или
$response = $v->wall->post(array(
'message' => 'I testing API form https://github.com/fdcore/vk.api'
));
Универсальный метод, который позволяет запускать последовательность других методов, сохраняя и фильтруя промежуточные результаты.
Подробнее https://vk.com/dev/execute
$v->execute('return API.wall.post({message: "Проверка Execute ^_^"});'));
Для заливки файлов в данный момент есть 3 метода:
- Загрузка видеозаписей $v->upload_video()
- Загрузка фотографий на стену пользователя $v->upload_photo()
- Загрузка документов $v->upload_doc()
Для загрузки фотографии, существует метод upload_photo().
Параметры: $gid - (стандартно 0) идентификатор сообщества, на стену которого нужно загрузить фото (без знака «минус»). (целое число) $files - массив путей к файлам (например array('4b67bhWrc4g.jpg', 'n52W2BdXdYE.jpg')) $return_ids - (стандартно false) возвращать id файлов или готовые строки для прикрепления (например photo12345_6789)
// загрузка фото на сервер
$attachments = $v->upload_photo(0, array('4b67bhWrc4g.jpg', 'n52W2BdXdYE.jpg'));
// публикация на стене
$response = $v->wall->post(array(
'message'=>'я публикую фотографии',
'attachments' => implode(',', $attachments)
)
);
// встраивание видео с YouTube без заливки
$attach_video = $v->upload_video(array(
'link'=>'http://www.youtube.com/watch?v=5ZeA4AMrcd8',
'title' => 'Tasogare Otome X Amnesia',
'description' => "Трек оригинал: Hiiragi Nao - Requiem",
'wallpost' => 1
));
// заливка видео на VK.com
$attach_name = $v->upload_video(
array('name' => 'Fadoo Sama',
'description' => 'AMV',
'wallpost' => 1,
'group_id' => 0
), '04975.Fadoo-Sama-DUALITY.amvnews.ru.mp4');
$attach_doc_file = $v->upload_doc(0, 'iZKE4JdP4Q0mT.jpg');
if ( is_string($attach_doc_file) ) echo $attach_doc_file;