ЧАСТЬ 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 — Читает содержимое файла
в строку
 
Комментариев нет:
Отправить комментарий