Отправка сообщений из 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}&amp;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}&amp;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}&amp;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}&amp;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}&amp;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}&amp;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}&amp;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}&amp;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("<", ">", "&amp;", "*", "/", "^", "%", "$", "#", "(", ")", "=", "-", "!", "\/","%E", "\n", "@", "'", "\"", "\\", ":", "|", ";");
$primaryArray 	= array("<", ">", "&amp;");
$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&amp;text=' . $message);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec ($ch);
    curl_close ($ch);
}
 
?>

Оставить комментарий

avatar
  Подписаться  
Уведомление о