Olá, Khabrovites. Nesta publicação, vou escrever sobre como fazer meu primeiro bot de bate-papo para o VKontakte. Eu acho que isso não será interessante para programadores experientes, mas aqueles que estão apenas começando sua jornada estarão interessados, pois eu mesmo não fui muito longe e entendi os problemas dos iniciantes. E eu aviso imediatamente que a maioria das capturas de tela será em inglês.
Primeiro, precisamos criar uma comunidade. Eu acho que todos podem lidar com isso.
Em seguida, acessamos as configurações da comunidade, selecionamos o item “Uso da API” e clicamos no botão “Criar token”.

Em seguida, você precisa escolher, de fato, o que podemos usar com esse token. Precisamos ter acesso a mensagens da comunidade, mas podemos escolher todos os direitos de acesso para não precisarmos lembrar sobre a criação de tokens no futuro.

E assim obtivemos o token cobiçado. A propósito, ele deve ser mantido em um local seguro e não mostrado a ninguém. Agora você pode prosseguir para o código.

Escreveremos código em PHP, para que você possa baixar o código do Visual Studio ou o PHPStorm. Em princípio, o código pode ser escrito no bloco de notas, mas não será conveniente. Após o código, seguiremos para a configuração do grupo.
Portanto, para iniciantes, precisamos obter informações sobre a mensagem recebida e traduzi-la do formato JSON para uma linguagem compreensível para PHP.
<?php $data = json_decode(file_get_contents('php://input')); ?>
Na variável de dados, agora temos uma matriz com uma mensagem, ID do usuário e ID do bate-papo.
“Que tipo de“ json_decode (file_get_contents ('php: // input')) ””, você pergunta.
Vamos começar a partir deste momento:
file_get_contents('php://input')
Em termos simples, perguntamos ao script o que veio à nossa entrada, ou seja, qual solicitação o VC enviou. Abaixo está um exemplo dessa solicitação.
{"type":"message_new","object":{"date":1568464037,"from_id":450829055,"id":5400,"out":0,"peer_id":450829055,"text":" .","conversation_message_id":1478,"fwd_messages":[],"important":false,"random_id":0,"attachments":[],"is_hidden":false},"group_id":171524656}
Eu acho que é fácil entender o que está escrito na solicitação, se você tiver um conhecimento mínimo em inglês.
Bem, "json_decode ()" é uma função que traduz o JSON acima em uma matriz com a qual o PHP pode trabalhar.
Agora, escreveremos um código que analisa o evento que aconteceu e, se uma nova mensagem chegar, ela compara a mensagem com a qual temos uma resposta e analisa o ID do bate-papo.
<?php $data = json_decode(file_get_contents('php://input')); switch ($data->type) { case 'confirmation': echo $confirmation_token; break; case 'message_new': $message_text = $data -> object -> text; $message_text = $data -> object -> peer_id; if ($message_text == ""){
Agora, precisamos responder de alguma forma a essas mensagens. Para fazer isso, escrevemos uma função simples.
<?php function vk_msg_send($peer_id,$text){ $request_params = array( 'message' => $text, 'peer_id' => $peer_id, 'access_token' => "TOKEN", 'v' => '5.87' ); $get_params = http_build_query($request_params); file_get_contents('https://api.vk.com/method/messages.send?'. $get_params); } ?>
O que está acontecendo aqui? Aqui, criamos uma solicitação para a API VK (eu recomendo a leitura da documentação) com o texto da mensagem, o ID do bate-papo e o token que criamos anteriormente, e os enviamos ao servidor VK.
Agora conecte esses trechos de código e escreva as reações do bot a uma mensagem específica.
<?php $confirmation_token = 'CONF_TOKEN' function vk_msg_send($peer_id,$text){ $request_params = array( 'message' => $text, 'peer_id' => $peer_id, 'access_token' => "TOKEN", 'v' => '5.87' ); $get_params = http_build_query($request_params); file_get_contents('https://api.vk.com/method/messages.send?'. $get_params); } $data = json_decode(file_get_contents('php://input')); switch ($data->type) { case 'confirmation': echo $confirmation_token; break; case 'message_new': $message_text = $data -> object -> text; $chat_id = $data -> object -> peer_id; if ($message_text == ""){ vk_msg_send($chat_id, ", , ."); } if ($message_text == ""){ vk_msg_send($chat_id, ". - , , ."); } echo 'ok'; break; } ?>
"Bem, por que precisamos escrever 'ok' depois de enviar a mensagem?"
Como usaremos o método de atualização chamado API de retorno de chamada, ou seja, o VK falará sobre novas mensagens para nós, precisamos dizer que ouvimos, caso contrário, ele será repetido várias vezes.
Agora vamos à criação do grupo.
Entramos nas configurações e selecionamos a versão da API 5.87 (é claro que você pode ter versões mais novas, mas é melhor ter uma unidade das versões da API).

Na mesma seção, pegamos a linha que o servidor deve retornar e a substituímos na variável confirm_token.
Depois disso, preencha o endereço do servidor. Para fazer isso, você precisa ter um domínio e hospedagem. O endereço que você especificar deve ser apenas um arquivo com um bot. Espero que o leitor possa lidar com isso sozinho.
Em seguida, escolhemos quais eventos da comunidade serão relatados para nós pelo VKontakte. Só precisamos de mensagens recebidas.

Em seguida, confirmamos o endereço do servidor e nosso primeiro bot está pronto para uso.

Como esta é minha primeira publicação sobre Habré, quero receber comentários sobre o artigo e apenas melhorar ainda mais.
Obrigado pela leitura.