Отправка сообщений из VK в Telegram — WebHook API Example

<?php 
echo('ok');
if (!isset($_REQUEST)) { 
return; 
} 
//Получаем и декодируем уведомление 
$dataString = file_get_contents('php://input');
//========================================
//------ЛОГИРОВАНИЕ ЗАПРОСА---------------
//========================================
$file = 'callback-vk.log';
// Открываем файл для получения существующего содержимого
$current = file_get_contents($file);
// Добавляем нового человека в файл
$current .= $dataString . "\n";
// Пишем содержимое обратно в файл
file_put_contents($file, $current);
//=========================================
//-ОБРАБОТКА ДАННЫХ CALLBACK SERVER VK API-
//=========================================
//Строка для подтверждения адреса сервера из настроек Callback API 
$confirmation_token = 'fasd0979LKKJGOYUFG63987nvsbNLKDoihui'; 
//Получаем и декодируем уведомление 
$data = json_decode(file_get_contents('php://input')); 
$dataArray = json_decode(file_get_contents('php://input'),true); 
//Проверяем, что находится в поле "type" 
switch ($data->type) { 
//Если это уведомление о новом сообщении... 
case 'message_new': 
//Событие
$user_id = $data->object->user_id;
$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&v=5.0"));
$first_name = $user_info->response[0]->first_name;
$last_name = $user_info->response[0]->last_name;
$user_name =  $first_name . " " . $last_name;
$message = "ВКонтакте: поступило сообщение от " . $user_name;
break;
//Если это уведомление о новом сообщении... 
case 'photo_comment_new': 
//Событие
$user_id = $data->object->from_id;
$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&v=5.0"));
$first_name = $user_info->response[0]->first_name;
$last_name = $user_info->response[0]->last_name;
$user_name =  $first_name . " " . $last_name;
$url_photo = 'https://vk.com/kavkazskayalegenda?z=photo' . $dataArray['object']['photo_owner_id'] . '_' . $dataArray['object']['photo_id'];
$message = "ВКонтакте: новый комментарий к фото " . $user_name . '. Ссылка: ' . $url_photo;
break;
//Если это уведомление о новом сообщении... 
case 'video_comment_new': 
//Событие
$user_id = $data->object->from_id;
$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&v=5.0"));
$first_name = $user_info->response[0]->first_name;
$last_name = $user_info->response[0]->last_name;
$user_name =  $first_name . " " . $last_name;
$url_video = 'https://vk.com/kavkazskayalegenda?z=video' . $dataArray['object']['video_owner_id'] . '_' . $dataArray['object']['video_id'];
$message = "ВКонтакте: новый комментарий к видео " . $user_name . '. Ссылка: ' . $url_video;
break;
//Если это уведомление о новом сообщении... 
case 'wall_reply_new': 
//Событие
$user_id = $data->object->from_id;
$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&v=5.0"));
$first_name = $user_info->response[0]->first_name;
$last_name = $user_info->response[0]->last_name;
$user_name =  $first_name . " " . $last_name;
$url_wall = 'https://vk.com/kavkazskayalegenda?w=wall' . $dataArray['object']['post_owner_id'] . '_' . $dataArray['object']['post_id'];
$message = "ВКонтакте: новый комментарий на стене " . $user_name . '. Ссылка: ' . $url_wall;
break;
//Если это уведомление о новом сообщении... 
case 'board_post_new': 
//Событие
$user_id = $data->object->from_id;
$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&v=5.0"));
$first_name = $user_info->response[0]->first_name;
$last_name = $user_info->response[0]->last_name;
$user_name =  $first_name . " " . $last_name;
$message = "ВКонтакте: новая запись в обсуждении " . $user_name;
break;
//Если это уведомление о новом сообщении... 
case 'market_comment_new': 
//Событие
$user_id = $data->object->from_id;
$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&v=5.0"));
$first_name = $user_info->response[0]->first_name;
$last_name = $user_info->response[0]->last_name;
$user_name =  $first_name . " " . $last_name;
$url_product = 'https://vk.com/kavkazskayalegenda?w=product' . $dataArray['object']['market_owner_id'] . '_' . $dataArray['object']['item_id'];
$message = "ВКонтакте: комментарий к товару " . $user_name . '. Ссылка: ' . $url_product;
break;
//Если это уведомление о новом сообщении... 
case 'group_join': 
//Событие
$user_id = $data->object->user_id;
$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&v=5.0"));
$first_name = $user_info->response[0]->first_name;
$last_name = $user_info->response[0]->last_name;
$user_name =  $first_name . " " . $last_name;
$message = "ВКонтакте: вступил(-а) в сообщество " . $user_name;
break;
//Если это уведомление о новом сообщении... 
case 'group_leave': 
//Событие
$user_id = $data->object->user_id;
$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&v=5.0"));
$first_name = $user_info->response[0]->first_name;
$last_name = $user_info->response[0]->last_name;
$user_name =  $first_name . " " . $last_name;
$message = "ВКонтакте: покинул(-а) сообщество " . $user_name;
break; 
//ЕСЛИ НЕ ОДИН ИЗ СЛУЧАЕВ НЕ ПОДОШЕЛ ТО ДЕФОЛТНОЕ ЗНАЧЕНИЕ
default:
$message = "ВКонтакте: событие " . $data->type; 
}
//$primaryArray 	= array("<", ">", "&", "*", "/", "^", "%", "$", "#", "(", ")", "=", "-", "!", "\/","%E", "\n", "@", "'", "\"", "\\", ":", "|", ";");
$primaryArray 	= array("<", ">", "&");
$message = str_replace($primaryArray, " ", $message);
//========================================
//---ОТПРАВКА В ЗАКРЫТЫЙ ЧАТ ТЕЛЕГРАММА---
//========================================
if ($dataArray['object']['from_id']<>13154842) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://api.telegram.org/bot111415841516:AAEmkjhk76ghgiu087ttIMAPgH3QDKUWKaXE/sendMessage?chat_id=-154915484391&text=' . $message);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec ($ch);
curl_close ($ch);
}
?>
0 0 голоса
Рейтинг статьи
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x