Mensagens de um site em VK - simples e eficaz - PHP + CUrl

A entrega de mensagens para a VK é conveniente para a maioria dos sites de diferentes direções: muitas pessoas não lêem e-mails, tudo é complicado em mensagens instantâneas, como Votsap e Viber. E o boletim informativo e as notificações pessoais do site na VK - o mais fácil, simples e imediatamente visíveis ao usuário.

Para o meu serviço de notificações de novos anúncios, preciso entregar de forma rápida e gratuita notificações de novos anúncios aos usuários. O canal básico - email - não é conveniente. Outro bom canal - o mensageiro do Telegram - decidiu lutar pela privacidade e não se tornou confiável. Portanto, tive que adicionar uma alternativa na forma de VK (especialmente porque o serviço ainda sabe como rastrear grupos no VK para o aparecimento de novas entradas e comentários). Fiquei agradavelmente surpreendido com a simplicidade e consideração das configurações, mesmo o Telegram não estava por perto.

1. Conecte o widget "Permitir escrever na comunidade"

O widget se parece com um botão. Eu incorporei o botão nas configurações da conta de usuário do serviço.

imagem

No texto, você precisa substituir 74449217 pelo ID do seu grupo. Considere também onde o userId VKontakte recebido será salvo. No código abaixo, ele é atribuído ao campo vk_id e, em seguida, é salvo junto com outras configurações.

<script type='text/javascript' src='https://vk.com/js/api/openapi.js?154'></script> <div id='vk_send_message'></div> <script type='text/javascript'> VK.Widgets.AllowMessagesFromCommunity('vk_send_message', {height: 30},74449217); VK.Observer.subscribe('widgets.allowMessagesFromCommunity.allowed', function f(userId) { console.log(userId); console.log('allowed'); document.getElementById('vk_id').value=userId; }); VK.Observer.subscribe('widgets.allowMessagesFromCommunity.denied', function f(userId) { console.log(userId); console.log('denied'); document.getElementById('vk_id').value=''; }); </script> 

Documentação do widget .

Obtivemos permissão do usuário, agora organizaremos o envio de mensagens.

2. Enviando mensagens

Nas configurações da sua comunidade, ative as mensagens da comunidade.

imagem

Geramos um token da nossa comunidade.

imagem

Em geral, tudo está pronto. Para enviar uma mensagem, use PHP + CUrl. Na função de envio, como parâmetros de entrada, transferimos o ID do usuário VK recebido anteriormente e o texto da mensagem. A função também usa as constantes vk_token, o token da comunidade.

 //   vk function send_vk($vk_id, $text_source) { $url="https://api.vk.com/method/messages.send?user_id=$vk_id&v=5.76&access_token=".vk_token; $text=rawurlencode($text_source); $ch = curl_init($url); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_POSTFIELDS, "&message=".$text); $hh=curl_exec($ch); //    if (!strpos(" ".$hh,'{"response":')) { //    ,   if (!strpos(" ".$hh,'error')) {$hh=curl_exec($ch);} } $html=$hh; curl_close($ch); return $html; } 

Junto com o estudo das possibilidades e do material, passei um dia organizando o envio de notificações para o VC - acho que essa é uma das opções mais fáceis de se comunicar com o usuário.

Source: https://habr.com/ru/post/pt416001/


All Articles