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