ЧАСТЬ 1.
Первый шаг. Создание
приложения.
Выбираем: Standalone-приложение
Второй шаг. Авторизация
и получение токена.
https://oauth.vk.com/authorize
client_id: ID приложения
redirect_uri: адрес, на который
будет перенаправлен пользователь после
прохождения автоизации. Здесь мы укажем:
https://oauth.vk.com/blank.html
response_type: token
scope: Битовая маска
настроек доступа приложения, которые
необходимо проверить при авторизации
пользователя и запросить, в случае
отсутствия необходимых.
display: тип отображения
страницы авторизации (page, popup, mobile).
Создадим файл tooken.php
<?php
// массив с правами
//
https://vk.com/dev/permissions
$permissions = [
'notify', 'friends',
'photos', 'audio', 'video', 'docs', 'notes',
'pages', 'status',
'wall', 'groups', 'messages', 'email', 'notifications',
'stats', 'ads',
'market', 'offline'
];
$request_params = [
'client_id' =>
'6211065',
'redirect_uri' =>
'https://oauth.vk.com/blank.html',
'response_type' =>
'token',
'display' =>
'page',
'scope' =>
implode(',', $permissions)
];
// сформируем
url-адрес, на который мы будем отправлять
запрос
// http_build_query —
Генерирует URL-кодированную строку
запроса
$url =
'https://oauth.vk.com/authorize?' .
http_build_query($request_params);
echo $url;
?>
Нажмем:
http://vk.loc/token.php
Выделим полученный
url и перейдем по данному
адресу:
https://oauth.vk.com/authorize?client_id=6211065&redirect_uri=https%3A%2F%2Foauth.vk.com%2Fblank.html&response_type=token&display=page&scope=notify%2Cfriends%2Cphotos%2Caudio%2Cvideo%2Cdocs%2Cnotes%2Cpages%2Cstatus%2Cwall%2Cgroups%2Cmessages%2Cemail%2Cnotifications%2Cstats%2Cads%2Cmarket%2Coffline
Нажимаем
Разрешить.
Из строки копируем
параметр access_token
Свой токен поставить!!!
Это
a64b6df931959b45c9a9ee8449ac8cfeab648aa7b2616046ad6baa832452bcebba2585c353c0405034
Перейдем на
страницу методов: https://vk.com/dev/methods
Выберем метод.
Например, https://vk.com/dev/groups.getMembers
Создаем новый
файл: get_group_members.php
<?php
$fields = ['connections',
'site', 'education', 'contacts', 'photo_max', 'status', 'city'];
$request_params = [
'group_id' =>
'apiclub',
'sort' => 'id_asc',
// сортировка
'offset' => 0, //
сдвиг
'count' => 30, //
число пользователей, которые мы хотим
получить
'fields' =>
implode(',', $fields), // поля, которые мы хотим
получить от данных поьзователей
'access_token' =>
'a64b6df931959b45c9a9ee8449ac8cf05eeab648aa7b26ad6baa832452bcebba2585c353c0405034'
];
$url =
'https://api.vk.com/method/groups.getMembers?' .
http_build_query($request_params);
$result =
file_get_contents($url);
echo $result;
Запускаем файл
get_group_members.php
Открывается
файл http://vk.loc/get_group_members.php
С данными в
формате json
ЧАСТЬ 2. Отправка
сообщения с медиа-вложением.
Создадим файл
send_message.php
<?php
$request_params
= [
'user_id' => 164096252,
'random_id' => mt_rand(20, 99999999),
'peer_id' => 164096252,
'domain' => 'anastasia_kapkova',
'chat_id' => 36,
'message' => 'Тестовое сообщение',
'v' => '5.52',
'access_token' =>
'a64b6df931959b45c9a9ee8449ac8cfab648aa7b2616046ad6baa832452bcebba2585c353c0405034'
];
//
адрес, на который мы отправляем запрос
$url
= 'https://api.vk.com/method/messages.send?' .
http_build_query($request_params);
file_get_contents($url);
// file_get_contents — Читает содержимое файла
в строку
Открываем файл
send_message.php. Нам приходит сообщение.
Загрузка
файлов.
Создаем файл:
file_attachment_to_send.php
<?php
error_reporting(0);
//
шаг №1
$request_params
= [
'access_token' =>
'a64b6df931959b45c9a9ee8449ac8cf05eeab64616046ad6baa832452bcebba2585c353c0405034',
'v' => '5.52' // версия api
];
//
адрес, на который мы отправляем запрос
$url
= 'https://api.vk.com/method/photos.getMessagesUploadServer?' .
http_build_query($request_params);
$result
= json_decode(file_get_contents($url), true);
//
print_r($result);
//
шаг №2 - загружаем картинку
//
curl_init — Инициализирует сеанс cURL
$curl
= curl_init();
$file
= __DIR__ .'/cover.jpg'; // сохраняем путь к файлу
//
создаем curl-файл
//
mime_content_type — Определяет MIME-тип содержимого
файла
//
pathinfo — Возвращает информацию о пути к
файлу
$file
= curl_file_create($file, mime_content_type($file),
pathinfo($file)['basename']);
//
настроим curl-объект перед отправкой
//
указываем куда мы будем делать запрос
//
curl_setopt — Устанавливает параметр для
сеанса CURL
//
CURLOPT_URL - Загружаемый URL
curl_setopt($curl,
CURLOPT_URL, $result['response']['upload_url']);
//
указываем, что это будет post-запрос
curl_setopt($curl,
CURLOPT_POST, true);
//
эмулируем отправку формы
curl_setopt($curl,
CURLOPT_HTTPHEADER, 'Content-type:
multipart/form-data;charset=utf-8');
//
отправляем post-данные
curl_setopt($curl,
CURLOPT_POSTFIELDS, ['file' => $file]);
//
хотим получить данные после запроса
curl_setopt($curl,
CURLOPT_RETURNTRANSFER, true);
//
таймаут для запроса
curl_setopt($curl,
CURLOPT_TIMEOUT, 10);
//
будем следовать за нашим запросом
curl_setopt($curl,
CURLOPT_FOLLOWLOCATION, true);
//
после настройки выполняем запрос
//
curl_exec — Выполняет запрос cURL
$response_image
= json_decode(curl_exec($curl), true);
//
закрываем соединение
curl_close($culr);
print_r($response_image);
//
шаг № 3 - сохраняем файл
$request_params
= [
'server' => $response_image['server'],
'photo' => $response_image['photo'],
'hash' => $response_image['hash'],
'access_token' =>
'a64b6df931959b45c9a9ee8449ac8cf05eeab648aa7b2616046ad6baa832452bcebba2585c353c0405034',
'v' => '5.52' // версия api
];
//
сохраняем картинку
$url
= 'https://api.vk.com/method/photos.saveMessagesPhoto?' .
http_build_query($request_params);
$result_image
= json_decode(file_get_contents($url), true);
//
отправка сообщения
$request_params
= [
'user_id' => 164096252,
'random_id' => mt_rand(20, 99999999),
'peer_id' => 164096252,
'domain' => 'anastasia_kapkova',
'chat_id' => 36,
'attachment' =>
'photo'.$result_image['response'][0]['owner_id'].'_'.$result_image['response'][0]['id'],
//'attachment' =>
'audio'.$result_audio['response'][0]['owner_id'].'_'.$result_audio['response'][0]['id'],
'message' => 'Рекомендую книгу!',
'v' => '5.52',
'access_token' =>
'a64b6df931959b45c9a9ee8449a5eeab648aa7b2616046ad6baa832452bcebba2585c353c0405034'
];
//
адрес, на который мы отправляем запрос
$url
= 'https://api.vk.com/method/messages.send?' .
http_build_query($request_params);
file_get_contents($url);
// file_get_contents — Читает содержимое файла
в строку
Комментариев нет:
Отправить комментарий