· 7 years ago · May 09, 2018, 06:38 PM
1<?php if (!isset($_REQUEST)) {return;}
2// Строка, которую должен вернуть Ñервер (См. Callback API->ÐаÑтройки Ñервера)
3$confirmationToken = '';
4// Ключ доÑтупа ÑообщеÑтва (Ð´Ð»Ð¸Ð½Ð½Ð°Ñ Ñтрочка которую получили нажав "Ñоздать ключ")
5$token = '';
6// Секретный ключ. (Задаем в Callback API->ÐаÑтройки Ñервера)
7$secretKey = 'wdaawdwad';
8
9//Получаем и декодируем уведомление
10$data = json_decode(file_get_contents('php://input'));
11
12// проверÑем secretKey
13if (strcmp($data->secret, $secretKey) !== 0 && strcmp($data->type, 'confirmation') !== 0) {return;}
14
15// ПроверÑем, что находитÑÑ Ð² поле "type"
16switch ($data->type) {
17 // Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑа Ñервера (поÑылает ВК)
18 case 'confirmation':
19 echo $confirmationToken; // отправлÑем Ñтроку Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑа
20 break;
21
22 // ЕÑли Ñто уведомление о новом Ñообщении...
23 case 'message_new':
24 // получаем id автора ÑообщениÑ
25 $userId = $data->object->user_id;
26 // через users.get получаем данные об авторе
27 $userInfo = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$userId}&v=5.0"));
28
29 // ВытаÑкиваем Ð¸Ð¼Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ
30 $user_name = $userInfo->response[0]->first_name;
31 // Через messages.send иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñ‚Ð¾ÐºÐµÐ½ ÑообщеÑтва отправлÑем ответ
32 $request_params = array(
33 'message' => "{$user_name}, Ваше Ñообщение получено!<br> Ð’ ближайшее Ð²Ñ€ÐµÐ¼Ñ Ð°Ð´Ð¼Ð¸Ð½ группы на него ответит.",
34 'user_id' => $userId,
35 'access_token' => $token,
36 'v' => '5.0'
37 );
38 $get_params = http_build_query($request_params);
39 file_get_contents('https://api.vk.com/method/messages.send?'. $get_params);
40 echo('ok'); // Возвращаем "ok" Ñерверу Callback API
41 break;
42
43 // Сработало Ñобытие - человек вÑтупил в группу
44 case 'group_join':
45 // получаем id автора ÑообщениÑ
46 $userId = $data->object->user_id;
47 // через users.get получаем данные об авторе
48 $userInfo = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$userId}&v=5.0"));
49
50 // ВытаÑкиваем Ð¸Ð¼Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ
51 $user_name = $userInfo->response[0]->first_name;
52 // Через messages.send иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñ‚Ð¾ÐºÐµÐ½ ÑообщеÑтва отправлÑем ответ
53 $request_params = array(
54 'message' => "Добро пожаловать в группу, {$user_name}!",
55 'user_id' => $userId,
56 'access_token' => $token,
57 'v' => '5.0'
58 );
59 $get_params = http_build_query($request_params);
60 file_get_contents('https://api.vk.com/method/messages.send?'. $get_params);
61 echo('ok'); // Возвращаем "ok" Ñерверу Callback API
62 break;
63
64 // Сработало Ñобытие - человек покинул группу
65 case 'group_leave':
66 // получаем id автора ÑообщениÑ
67 $userId = $data->object->user_id;
68 // через users.get получаем данные об авторе
69 $userInfo = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$userId}&v=5.0"));
70
71 // ВытаÑкиваем Ð¸Ð¼Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ
72 $user_name = $userInfo->response[0]->first_name;
73 // Через messages.send иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñ‚Ð¾ÐºÐµÐ½ ÑообщеÑтва отправлÑем ответ
74 $request_params = array(
75 'message' => "{$user_name}, нам очень жаль, что вы покинули нашу группу!",
76 'user_id' => $userId,
77 'access_token' => $token,
78 'v' => '5.0'
79 );
80 $get_params = http_build_query($request_params);
81 file_get_contents('https://api.vk.com/method/messages.send?'. $get_params);
82 echo('ok'); // Возвращаем "ok" Ñерверу Callback API
83 break;
84}
85?>