Abonament automat prin cuvinte cheie în mailer-ul Gamayun pe VK și testarea funcției „tastatură”. Cum funcționează API-ul Callback și tastatura

Noua funcționalitate pentru roboții VK - butoane de răspuns rapid sau tastatură.

IMPORTANT! Versiunea mai recentă a articolului

Echipa noastră de „scriitori de bot” a devenit imediat interesată de această inovație și a început să studieze oficialul API să vă spună și să vă arate instrucțiuni detaliate pentru crearea unui bot folosind tastatura. Acest articol va produce un bot, a cărui activitate o puteți vedea în grupul nostru Sfaturi de jocîn VK. De asemenea, vă puteți alătura conversației comunității pe VK, unde vă pot ajuta cu problema dvs.

Crearea și înființarea unei comunități

După crearea unei comunități în VK, urmați această cale:
„Gestionarea comunității” → „Mesaje” și activați conversațiile în comunitate. Acum, în submeniul „Setări bot”, activați „Funcții bot” și butonul „Start”.

Vom scrie folosind API Callback (trimite fiecare acțiune din comunitate separat la server). Prin urmare, ar trebui să fie și configurat. Să mergem la
„Managementul comunității” → „Lucrul cu API”. Pentru ca botul să funcționeze, trebuie să înregistrați o cheie de acces. Faceți clic pe „Creați o cheie” și selectați drepturile de acces necesare; acest bot are nevoie doar de drepturi la mesaje. Confirmăm numărul de telefon și salvăm cheia de acces undeva. Acum accesați fila API de apel invers. Punem numele serverului nostru și selectăm cea mai recentă versiune a API-ului (în prezent este 5.80, iar botul prezentat mai jos va funcționa 100% cu el). În fila „Tipuri de solicitări”, selectați numai mesajele primite.

Ajustarea serverului

Acum veți avea nevoie de un server pentru a vă găzdui botul. Puteți utiliza servicii gratuite de găzduire, cum ar fi 000webhost.

Dacă utilizați găzduire ieftină/gratuită, atunci cel mai probabil cURL va fi dezactivat pe ele (nu veți putea trimite fișiere media cu un bot, doar text) și nu poate fi activat. 000webhost este în regulă cu asta, îl poți folosi. Dacă aveți propriul dvs. server sau unul bun achiziționat, atunci trebuie să vă conectați cURL pentru ca botul din exemplul nostru să funcționeze pe deplin.

Cum funcționează API-ul Callback și tastatura

Vă voi face un scurt tur al modului în care funcționează totul. API-ul Callback trimite către serverul dumneavoastră orice eveniment care are loc în grup sub formă de JSON. Lista completă a evenimentelor poate fi vizualizată în fila „Callback API” → „Tipuri de evenimente”. Așa arată cererea JSON când utilizatorul trimite un mesaj, în acest caz a făcut clic pe butonul:

("type":"message_new","object":("date":1529668584,"from_id":89846036,"id":1522,"out":1,"peer_id":89846036,"text":"Gold fish","conversation_message_id":305,"fwd_messages":,"important":false,"random_id":0,"attachments":,"payload":"(\"animale\":\"Goldfish\")" ,"is_hidden":false),"group_id":101461081)

Există mai multe câmpuri interesante care pot fi procesate: user id, textul mesajului (text), buton payload (payload).

Mesajele sunt trimise utilizatorului folosind metoda mesaje.trimite. Dacă trimiteți o tastatură, atunci după toți parametrii standard adăugați parametrul tastaturii, care conține json-ul butoanelor, așa arată:

Tastatură: ( „one_time”: fals, „butoane”: [[ [( „acțiune”: ( „type”: „text”, „payload”: „(\”button\”: \”1\”)”, „ label": „Roșu”, „culoare”: „negativ” ), ( „acțiune”: ( „tip”: „text”, „sarcină utilă”: „(\”button\”: \”2\)” , „ label": "Verde"), "culoare": "pozitiv" )]

Lucrul cu biblioteca

Pentru a opera botul, folosim o bibliotecă auto-scrisă în PHP. (Dacă linkul nu funcționează, atunci aici este arhiva) puteți găsi documentație pentru bibliotecă și descărca biblioteca în sine. Iată o scurtă listă de funcții gata făcute pentru scrierea unui bot, căutați mai multe detalii la linkul de mai sus. Dacă doriți să aflați despre modificările din bibliotecă, atunci scrieți cel puțin un mesaj la noi bot pe VK, prin intermediul acestuia vă vom anunța despre modificări.

$vk = new vk_api(vk_key, version_api) — inițializare bot. Parametri: cheia comunității (vk_key), versiunea API (version_api).

sendMessage(id, text) - funcție de trimitere a mesajelor către utilizator. Parametri: ID utilizator (id), text mesaj (text).

sendImage(id, patch) - funcție pentru trimiterea imaginilor. Parametri: user id(id), calea către imagine(patch).

sendButton(id, text, buttons, one_time) - funcție pentru trimiterea unui mesaj cu butoane. Parametri: user id(id), text text(nu poate fi gol)(text), matrice cu butoane(butoane), parametru opțional one_time, false implicit, dacă este setat la true, apoi după apăsarea oricărui buton tastatura va dispărea.

request(method, array_arguments) este o funcție universală pentru lucrul cu metode. Parametri: method - numele metodei din API-ul oficial, array_arguments - matrice de parametri.

sendOK() — Funcția beta. Folosit în loc de echo „ok”, ajută în cazurile în care rularea scriptului durează mult și botul începe să repete mesajele de mai multe ori.
IMPORTANT: dacă utilizați această funcție, nu veți vedea eroare. Când depanați, înlocuiți-l cu ecou „ok”

Cod bot complet în PHP

Acum să trecem la codul în sine, unde aproape fiecare linie este comentată.
Acest cod este acceptat pe PHP 5.6+
În blocul CONFIG, specificați cheia de acces la comunitate, cheia de confirmare a serverului și versiunea API pe care ați ales-o.

„Pește”], „Ce feluri există?”, „albastru”]; //Codul butonului "Pește" const BTN_BACK = [["command" => "start"], "<< Назад", "red"]; // Код кнопки "<< Назад" const BTN_SALMON = [["animals" =>„Somon_roz”], „Somon roz”, „alb”]; // Cod pentru butonul "Pink Somon" const BTN_GOLDFISH = [["animals" => "Goldfish"], "Goldfish", "blue"]; // Cod pentru butonul "Goldfish" const BTN_PLOTVA = [["animals" => "Plotva"], "Roach", "green"]; // Cod pentru butonul "Roach" $vk = new vk_api(VK_KEY, VERSION); // creează o instanță a unei clase pentru lucrul cu api, acceptă cheia api și versiunea $data = json_decode(file_get_contents("php://input")); //Primește și decodifică JSON care a venit de la VK dacă ($date->type == „confirmare”) ( //Dacă vk solicită o ieșire cu cheie (ACCESS_KEY); //Completați scriptul trimițând cheia) $vk-> trimiteOK(); //Spune-i lui vk că am acceptat apelul înapoi dacă (isset($data->type) și $data->type == "message_new") ( //Verificați dacă acest mesaj este de la utilizator $id = $data->obiect - >from_id; //Obțineți id-ul utilizatorului care a scris mesajul $message = $data->object->text; if (isset($data->object->peer_id)) $peer_id = $data->object ->peer_id; // Obține peer_id-ul chat-ului de unde a venit mesajul else $peer_id = $id; if (isset($data->object->payload))( //obține payload $payload = json_decode($ date->object->payload, True ); ) else ( $payload = null; ) if (isset($payload["comandă"]) sau mb_strtolower($message) == "start") ( //Dacă startul butonul este apăsat sau<< назад $vk->sendButton($peer_id, „Vrei să vezi peștele?”, []); //Trimite butonul utilizatorului ) else ( if ($payload != null) ( // dacă încărcătura utilă există comutator ($payload["animals"]) ( //Uită-te la ce este în cazul butoanelor de sarcină utilă "Pește": //Dacă acesta este Fish $vk->sendButton($peer_id, „Ca acestea, alege”, [ //Trimite butoane utilizatorului, ]); break; case „Pink_salmon”: //Dacă acesta este Pink Somon $vk ->sendMessage($peer_id, "Păstrează-ți somonul roz!"); //trimite un mesaj $vk->sendImage($peer_id, "img/pink_salmon.jpg"); //trimite o pauză de imagine; caz "Goldfish" : //Dacă acesta este un Goldfish $vk->sendMessage( $peer_id, „Ea îți va îndeplini dorințele...”); $vk->sendImage($peer_id, „img/goldfish.jpg”); break; case „Plotva”: //Dacă acesta este Roach $vk->sendMessage( $peer_id, „Oh, se pare că imaginea a fost amestecată)”); $vk->sendImage($peer_id, „img/plotva.jpg”) ; pauză; implicit: pauză; ) ) ) ) ?>

Acum știți cum funcționează codul și îl puteți personaliza pentru a vă potrivi.

Să începem!

Încărcați scriptul și biblioteca pe server. Acum accesați fila Callback API din setări, introduceți calea către script-ul dvs. în câmpul de adresă și faceți clic pe confirmare. Dacă ați făcut totul corect, lângă adresă va apărea o bifă verde.

FAQ:

Întrebare: Nimic nu funcționează deloc!
Răspuns: Deci s-au încurcat undeva. Recitiți din nou articolul cu atenție și verificați dacă ați făcut totul. Orice pas spre stânga poate duce la o eroare...

Întrebare: Totul merge la mine, dar pozele nu sunt trimise.
Răspuns: Verificați dacă ați adăugat folderul img cu imagini. De asemenea, este posibil să utilizați un server care nu acceptă cURL.

Întrebare: Am schimbat versiunea la 5.78 sau orice alta. Nu merge nimic pentru mine.
Răspuns: Utilizați alte versiuni api, altele decât 5.80 pe propriul risc. De exemplu, pe versiunea 5.78, diferite nume de variabile provin din VK (de exemplu, în loc de obiect->text există obiect->corp), așa că scriptul se blochează. Căutați toate modificările API

Rețeaua de socializare VKontakte a introdus capacitatea de a conecta tastaturi la chatbot pentru a simplifica navigarea și a accelera comunicarea cu abonații. Acum utilizatorul poate selecta una dintre opțiunile de interacțiune prestabilite și poate pune o întrebare - iar botul va reveni cu un răspuns.

Cum se activează o nouă funcție?

Pentru ca butoanele să funcționeze, trebuie să faceți clic pe „Activați API pentru roboți” în setările mesajului comunității. Echipa VKontakte eliberată documentație detaliată despre această funcție.

Unde să caut?

Butoanele noi pot fi testate:

  • în comunitatea oficială Comedy Club;
  • cu botul Maxim, care convertește textul într-un mesaj audio;
  • cu Callback API Bot care monitorizează actualizările din comunitățile selectate.

La ce să vă așteptați la următoarele actualizări VKontakte?

Dezvoltatorii promit că vor adăuga în curând suport pentru chatbot în conversații. Este raportat că oricare dintre funcțiile lor poate fi folosită fără a întrerupe dialogul și fără a fi nevoie de a transmite mesaje bot către prieteni.

Chatbot-urile câștigă popularitate în rândul utilizatorilor de mesagerie instantanee pentru accesibilitatea și ușurința lor de interacțiune. O altă companie rusă de tehnologie Just AI la sfârșitul lui mai 2018, un designer de roboti de chat încorporați care înțeleg limbajul natural. Și cei care doresc să-și creeze propriul bot pentru VKontakte se pot familiariza cu.

Pe VKontakte, pentru comoditate, puteți utiliza combinații speciale de taste - taste rapide - pentru a trimite mesaje, a viziona videoclipuri, fotografii, a publica postări etc. Să ne uităm la ce combinații de taste sunt cele mai des folosite.

La trimiterea mesajelor

Pentru a trece la o nouă linie într-un câmp de text, utilizați combinația.

Pentru a trimite un mesaj destinatarului, trebuie să utilizați tasta introduce.

Sau, făcând clic pe săgeata din dreapta, selectați o altă combinație de taste:

— pentru a trimite un mesaj


introduce- a rupe o linie

Când postezi pe un perete

Pentru a accesa o nouă linie dintr-o postare sau într-un comentariu la o postare, utilizați tasta introduce.

Pentru a posta o postare sau a lăsa un comentariu la aceasta, utilizați sau.

Când comutați între dialoguri

Pentru a facilita gestionarea dialogurilor pe VKontakte, există o opțiune de a utiliza o comandă rapidă de la tastatură Ctrl+număr(de la 1 la 0).


În dreapta există o fereastră de corespondență personală, pe care o puteți schimba cu ușurință. Numărul maxim de dialoguri este limitat la zece. Pentru a scrie altor utilizatori, selectați dialogul cu mouse-ul.

La vizualizarea fotografiilor

Pentru a face vizualizarea imaginilor mai comodă, puteți utiliza modul ecran complet. Pentru a face acest lucru, selectați combinația de taste Alt+Enter sau Ctrl + Enter .

Alt+Enter sau Esc .


Când vizionați un videoclip

Derulați înapoi videoclipul folosind tastele săgeți. Segmentele de derulare înapoi au o lungime de aproximativ șapte secunde.

Apăsarea barei de spațiu întrerupe videoclipul sau continuă redarea.

Pentru a ieși din modul ecran complet, utilizați Alt+Enter sau Esc.

La derularea paginii

Pentru a derula pagina în jos, utilizați In josul paginii sau Sfârşit .


Pentru a derula pagina în sus - Pagină sus sau Acasă .


Aflați mai multe despre această caracteristică

Acesta nu este altceva decât un chatbot. Pentru a automatiza funcționarea butoanelor, acestea trebuie să fie asociate cu un abonament la newsletter bazat pe un cuvânt cheie. Specificați un cuvânt cheie (sau o expresie) pe buton, apoi când faceți clic pe el, vă veți abona automat la newsletter și veți trimite un mesaj. Sau o altă acțiune pe care o specificați în canalul automat.

Cum am făcut-o?

Anterior, am creat un subiect nou pentru abonarea la lecții gratuite și în setări am setat expresia cheie pentru abonarea la acest buletin informativ - „Vreau lecții”.

Când o persoană introduce această frază cheie într-un dialog cu comunitatea mea, se abonează automat la acest buletin informativ (subiect) și primește lecții. Aceste lecții vin imediat în primul mesaj de corespondență automată. Apoi, după 2 zile, sosește un al doilea mesaj, unde întreb dacă persoana s-a uitat prin lecții, cum i-au plăcut, dacă există întrebări și, de asemenea, ofer să primesc cursul complet și un cadou suplimentar la reducere. Mesajele automate către Gamayun sunt configurate în secțiunea „Pâlnie automată”. Am scris mai multe despre pâlnia automată

Pe unul am scris textul „Nu, mulțumesc” - dacă un abonat a făcut clic pe acest buton, atunci am văzut în mesajele comunității că nu era interesat.

Dacă o persoană a făcut clic pe butonul „Vreau lecții”, s-a abonat automat la lecții și a primit imediat un mesaj cu un link. Și am segmentat oamenii care erau interesați și apoi am folosit canalul automat.

Deocamdată, funcția tastaturii este disponibilă doar atunci când se trimit manual buletine informative, dar au promis că o vor implementa în curând în canalele automate.

Pe baza rezultatelor testelor

În principiu, totul a mers bine, așa cum am plănuit. Au fost unele sughițuri - când utilizatorul a dat clic pe butonul „Vreau lecții”, mesajul cu lecții a ajuns cu o oarecare întârziere, pe alocuri mai repede, în altele mai lung.

Când o persoană a făcut clic pe butonul „Nu, mulțumesc”, am văzut acest mesaj în dialogurile comunității mele, am căutat prin profilurile acestor oameni. Unii oameni pur și simplu nu au fost interesați de acest subiect, dar persoana a fost vizată. Au fost și mai multe persoane ale căror profiluri le-am văzut că practic nu suntem pe aceeași cale - și i-am dezamăgit ca să nu mă deranjez cu mailingurile mele.

Dacă o persoană nu a deschis o conversație de mult timp și am reușit să trimit alte mesaje în acest timp, atunci tastatura continuă să se blocheze sub chat până când dați clic pe ea (este important să bifați „Ascundeți când este apăsat” caseta de selectare din setările tastaturii). În consecință, mesajul a crescut deja și nu toată lumea a înțeles la ce anume se referă aceste butoane

În general, funcția funcționează așa cum ar trebui - tastatura îndeplinește funcția unui bot de chat și abonament folosind o expresie cheie, permițându-vă astfel să segmentați publicul activ și să faceți un lanț automat mai țintit în funcție de interesele oamenilor.

Să aruncăm o privire pas cu pas asupra modului de a configura un abonament de cheie și de a-l asocia cu tastatura

Mai întâi, să creăm un subiect de abonament și să adăugăm o expresie cheie(acesta poate fi un cuvânt) pentru abonamentul automat. Pentru a face acest lucru, accesați aplicația Gamayun prin butonul din grup, accesați fila „Mailouts” - „Subiecte”. Faceți clic pe „Creați subiect”.

Indicați titlul și descrierea subiectului. De exemplu, voi crea subiectul „Cadou pentru activitate”.

Subiectul creat poate fi făcut invizibil în aplicația de newsletter. Apoi ei se vor putea abona la acesta doar folosind un cuvânt cheie sau un link pe care îl furnizați. Pentru a ascunde vizibilitatea, faceți clic pe pictograma ochiului și aceasta va fi tăiată.

De asemenea, puteți adăuga un cuvânt cheie pentru abonamentul automat la un subiect creat anterior, făcând clic pe creion pentru a-l edita.

Acum pentru subiectul nou creat Să setăm primul mesaj automat după abonare. Asa ca atunci cand dai click pe butonul – vreau un cadou, persoana sa primeasca imediat acest cadou. Acest lucru se face în fila „Pâlnie automată”.

În primul câmp, selectați subiectul creat, apoi faceți clic pe „Creare script”.

Faceți clic pe creion pentru a edita blocul.

Creăm o nouă acțiune în bloc – Trimite mesaj.

Ne scriem mesajul. De exemplu, pentru mine acesta va fi un link către un cadou. Puteți insera o variabilă de nume de abonat în mesaj pentru un mesaj personalizat. Faceți clic pe „Salvare”.

În același mod, puteți continua lanțul automat de mesaje, creând noi blocuri și conectându-le între ele. Pentru a comunica, trebuie să mergeți la blocul anterior, să adăugați acțiunea „Apel întârziat” și să indicați după ce oră va fi efectuat următorul bloc (acțiune) din pâlnie.

Acum să asociem cuvântul cheie cu tastatura și să verificăm abonamentul automat.

Selectăm subiectul (grupul de abonați) asupra căruia dorim să trimitem un newsletter. Puteți selecta mai multe subiecte în același timp. Dacă nu selectați unul, buletinul informativ va fi trimis tuturor abonaților dvs. De exemplu, aleg un grup de teste pe care l-am creat exclusiv pentru mine, în care sunt singurul abonat. De asemenea, vă recomand să faceți acest lucru pentru testarea inițială.

Scriu un mesaj prin care se oferă să primesc un cadou.

Apropo, o altă caracteristică nouă este capacitatea de a dezactiva previzualizările linkurilor (adică o imagine care este extrasă de un link dintr-un mesaj). Acest lucru nu este întotdeauna potrivit. Acest lucru a fost introdus deoarece la adăugarea unui link pentru a vă dezabona, a fost extrasă o imagine pe care se putea face clic, ceea ce a atras toată atenția. Acest lucru poate fi acum dezactivat.

Aici este important să urmați linkul indicat în sfaturi pentru prima dată și să activați capabilitățile bot în setări, altfel tastatura nu va funcționa!

De asemenea, bifați caseta de selectare „Ascunde tastatura când este apăsată” - asta înseamnă că atunci când dai clic pe buton, acesta va dispărea.

Puteți adăuga unul sau mai multe butoane făcând clic pe semnul plus. Pentru a schimba culoarea butonului și inscripția de pe el, trebuie doar să faceți clic pe el cu mouse-ul.

De exemplu, voi face doi butoane - albastru și verde. Pe una voi scrie expresia cheie „Vreau un cadou”, iar pe a doua „Nu, mulțumesc” (la urma urmei, ar trebui să existe întotdeauna o alegere).

Iată cum arată acest mesaj cu o tastatură în mesajul personal al unui abonat.

Dau clic pe butonul „Vreau un cadou” și îl primesc imediat. Adică, a avut loc un abonament automat la subiect, iar pâlnia a fost activată. Așa funcționează.

Apropo, acest lucru poate fi folosit în acest fel - de exemplu, ne abonăm la un buletin informativ și ne dezabonăm de la altul. Pentru a face acest lucru, adăugați pur și simplu acțiunea corespunzătoare la primul bloc al pâlniei automate.

De asemenea, puteți adăuga mai multe butoane (4-5) pentru a segmenta abonații în diferite subiecte (în funcție de preferințele acestora). Adică, faceți un sondaj...

Puteți urmări lecția vizuală pentru articol:

Vă mulțumesc pentru atenție și mă voi bucura să văd comentariile!

Cu stima, Victoria Karpova