Usluge za praćenje događaja u vašoj VK zajednici
Usluge koje rade kroz VK API za povratni poziv i imaju približno sličnu funkcionalnost: praćenje komentara, poruka u DM-u zajednice, postova na zidu zajednice itd.
1. Api bot za povratni poziv https://vk.com/cbbot. Koristim ga oko šest mjeseci. Bot je stabilan i ima mogućnost povezivanja menadžera. Loša strana je što sve obavijesti završavaju u istom PM-u, ako ima puno zajednica, to je deponij.
2. Moderator - https://vk.com/app5474492. Aplikacija povoljno sortira sve događaje po vrsti, postoje postavke različiti tipovi obavijesti o događajima, mogućnost povezivanja upravitelja. Što se tiče funkcionalnosti, ovo je najbolja dostupna aplikacija. Loša strana je što je to isti razvojni tim kao i usluga Sexy. Koji je započeo svoj ulazak na tržište korištenjem računa svojih korisnika bez njihovog znanja ili pristanka. Stoga je davanje pristupa iz DM-ova njihovih zajednica za mene osobno nekako zastrašujuće.
3. pushall.ru - Ovo je sveobuhvatna usluga obavijesti, uklj. ima i VK. Tu su obavijesti e-poštom i telegramom, obavijesti u pregledniku na računalu, Android i iOS aplikacije. Iako je sve hrpa, možete ih sortirati kako god želite koristeći pravila mail i telegram botova. Među jedinstvenim značajkama, usluga može proslijediti primljene odgovore od VK na drugi poslužitelj. Oni. možete povezati nekoliko aplikacija koje koriste API za povratni poziv. Na besplatno korištenje Možete spojiti samo 2 poslužitelja.
Podrška za uslugu - radi, ažurirana je, ali brzina ažuriranja ne odgovara navedenoj na temelju vijesti o usluzi, stekao sam dojam da je entuzijazam programera malo izblijedio; Prema programeru, jednostavno su se usredotočili na druge funkcije usluge.
4. https://vk.com/callback_api_lite- usluga se ističe činjenicom da ima vezu sa zajednicom jednim gumbom, tj. sve postavke poslužitelja u zajednici bit će napravljene za vas. Također, obavijesti iz svake zajednice vam se šalju posebno - putem DM-a ove zajednice. Oni. Imat ćete nekoliko razgovora sa svojim zajednicama na svom osobnom računu, gdje ćete primati obavijesti. Ove dvije značajke čine uslugu prikladnom za vlasnike hrpe zajednica, kada čak i samo povezivanje API-ja za povratni poziv natjera da se svi požele objesiti. Istina, morat ćete zasebno poslati najmanje 1 poruku DM-ovima svake svoje zajednice kako biste im dali dopuštenje da vam šalju poruke. Podrška i poboljšanje usluge provodi se prilično aktivno i vrlo brzo - poboljšanja se vrše u roku od 1-2 dana. Međutim, usluga je jasno navedena kao besplatna, tako da nisu planirane nikakve cool značajke.
Među nedostacima: 1) povezivanje zajednice s jednim računom s kojeg ste prvi put ušli u uslugu. Neće biti moguće povezati upravitelje. 2) Za povezivanje jednim gumbom, usluga ima pristup upravljanju zajednicom. 3) Potrebna su mjesta u zajednici. Trenutačno imam 63 zajednice koje rade na jednom od mojih projekata i te su zajednice gotovo svaki dan preplavljene neželjenom poštom u DM-ovima, uvijek sve odjednom i uglavnom kasno navečer - kad posao već stoji, ali obavijesti nisu još uvijek isključen. Ne odgovarajte na spam u PM-u = vrijeme odgovora prikazano klijentima će se produžiti. Zatvori LAN = ponovno spoji sve zajednice na drugu uslugu. Ostavite sve kako jest = vješalica.
5. Gamayun: https://gmun.pro. Zajednice se povezuju jednim klikom, ali u nekim slučajevima ne iz prvog pokušaja - prikazuje se pogreška "no community token". Sve obavijesti spadaju u Osobni prostor u službi na jednoj hrpi. Postoji učitavanje statistike u csv - jedina usluga od svih - ali također je sve na jednoj hrpi za sve zajednice. Postoje obavijesti telegramom i e-poštom. Kao i callback api lite, usluga daje pristup upravljanju cijelom zajednicom, a ne samo za obavijesti.
6. http://vk-notify.ru. Tko želi napisati svoju uslugu - ovdje ima najbolju korisničko sučelje prikaz upozorenja. Nažalost, čini se da je usluga umrla. U svakom slučaju, obavijesti ne dolaze; nije poznato ima li usluga podršku.
Pozdrav dragi moji čitatelji bloga. Želio bih posvetiti današnji članak dobivanju Api ID broja od VKontakte. Možda će se netko zapitati, zašto nam to uopće treba i kako je korisno za blog?
Plan za današnji članak nije velik.
Zašto je blogu potreban API ID?
Kako ga nabaviti?
Zašto vam je potreban API ID za VKontakte blog na WordPressu?
API ID broj može biti potreban za društveni dodaci. Ljudi koji ostavljaju lajkove i komentare putem VKontakte gumba i widgeta moraju kontaktirati poslužitelj kako bi VK.COM znao na kojoj stranici njegovi registrirani korisnici ostavljaju komentare ili lajkove.
Ovaj broj je također potreban kako ljudi ne bi morali unositi svoje podatke. Ali osnova ovog problema je rad dodataka za društvene mreže na web stranici koja pokreće WordPress
Kako ga nabaviti?
Sada dolazimo do glavne stvari. Kako dobiti api id na VKontakte?
Da biste to učinili, morate otići na odjeljak za programere, Zatim kliknite na Izradi aplikaciju, u prozoru koji se pojavi odaberite karticu Web stranica, također unesite naziv svoje aplikacije, adresu svoje stranice i osnovnu domenu.
Adresa će biti - http://mysite.ru
Osnovna domena - mysite.ru
mysite - adresa vaše web stranice
Nakon potvrde vašeg telefonskog broja, bit ćete preusmjereni na stranicu s informacijama o vašoj aplikaciji, morate kliknuti karticu postavki i doći ćemo na stranicu na kojoj se nalazi naš VKontakte API ID.
Uživajte za svoje zdravlje. Nadam se da si ga dobio za sebe korisna informacija. Vidimo se uskoro, dragi čitatelji.
Pretplatite se na ažuriranja bloga kako ne biste propustili nove članke.
S poštovanjem, S. Vasiliev
Pisati ćemo koristeći Callback api (šalje svaku radnju u zajednici zasebno na poslužitelj). Stoga ga također treba konfigurirati. Idemo
“Upravljanje zajednicom” → “Rad s API-jem”. Da bi bot radio, morate registrirati pristupni ključ. Kliknite "Stvori ključ" i odaberite potrebna prava pristupa; ovaj bot treba samo prava na poruke. Potvrđujemo telefonski broj i negdje spremamo pristupni ključ. Sada idite na karticu API povratnog poziva. Stavite naziv poslužitelja i odaberite Najnovija verzija API (uključen ovaj trenutak to je 5.80, i s njim će bot predstavljen u nastavku raditi 100%). U kartici "Vrste zahtjeva" odaberite samo dolazne poruke.
Podešavanje poslužitelja
Sada će vam trebati poslužitelj za hosting vašeg bota. možeš koristiti besplatni hosting, na primjer 000webhost.
Ako koristite jeftini/besplatni hosting, onda će najvjerojatnije cURL biti onemogućen na njima (nećete moći slati multimedijske datoteke s botom, samo tekst), i ne može se omogućiti. 000webhost je u redu s ovim, možete ga koristiti. Ako imate vlastiti poslužitelj ili kupljen dobar, tada morate spojiti cURL za punopravni rad bot iz našeg primjera.
Kako funkcionira API povratnog poziva i tipkovnica
ja ću potrošiti kratki izlet kako sve funkcionira. Callback API šalje vašem poslužitelju svaki događaj koji se dogodi u grupi u obliku JSON-a. Cijeli popis događaji se mogu vidjeti u “Callback API” → kartici “Event Types”. Ovako izgleda JSON zahtjev kada korisnik pošalje poruku, u u ovom slučaju pritisnuo je dugme:
("type":"message_new","object":("date":1529668584,"from_id":89846036,"id":1522,"out":1,"peer_id":89846036,"text":"Zlato riba","conversation_message_id":305,"fwd_messages":,"important":false,"random_id":0,"attachments":,"payload":"(\"animals\":\"Goldfish\")" ,"is_hidden":false),"group_id":101461081)
( "type": "message_new" , "object" : ( "date" : 1529668584 , "from_id" : 89846036 , "id" : 1522 , "out" : 1 , "peer_id" : 89846036 , "text" : "Zlatni riba" , "conversation_message_id" : 305 , "fwd_messages" : , "important" : false , "random_id" : 0 , "attachments" : , "payload" : "(\"životinje\":\"Zlatna ribica\")" , "is_hidden" : false ) , "group_id" : 101461081 ) |
Postoji nekoliko zanimljivih polja koja se mogu obraditi: ID korisnika, tekst poruke (tekst), teret gumba (korisni teret).
Poruke se šalju korisniku pomoću metode poruke.slati. Ako pošaljete tipkovnicu, onda nakon svih standardnih parametara dodate parametar tipkovnice, koji sadrži json gumba, ovako to izgleda:
Tipkovnica: ( "one_time": false, "buttons": [ [( "action": ( "type": "text", "payload": "(\"button\": \"1\")", " oznaka": "Crvena", "boja": "negativno" ), ( "akcija": ( "vrsta": "tekst", "korisni teret": "(\"gumb\": \"2\)" , " oznaka": "zeleno"), "boja": "pozitivno" )]
tipkovnica: ( "jednokratno": netočno, "gumbi" : [ "akcija" :( "tip": "tekst", "payload" : "(\"button\": \"1\")" , "label": "crveno" "boja" : "negativ" "akcija" :( "tip": "tekst", "payload" : "(\"button\": \"2\")" , "label": "zeleno" "boja": "pozitivno" |
Rad s knjižnicom
Za rad s botom koristimo knjižnicu koju smo sami napisali u PHP-u. (ako link ne radi, onda je ovdje arhiva) možete pronaći dokumentaciju za biblioteku i preuzeti samu biblioteku. Ovdje je kratki popis gotovih funkcija za pisanje bota, više detalja potražite na gornjoj poveznici. Ako želite znati o promjenama u knjižnici, napišite nam barem jednu poruku bot na VK, putem njega ćemo Vas obavještavati o promjenama.
$vk = new vk_api(vk_key, version_api) — inicijalizacija bota. Parametri: ključ zajednice (vk_key), verzija API-ja (version_api).
sendMessage(id, text) - funkcija za slanje poruka korisniku. Parametri: ID korisnika(id), tekst(tekst) poruke.
sendImage(id, patch) - funkcija za slanje slika. Parametri: ID korisnika (id), put do slike (zakrpa).
sendButton(id, text, buttons, one_time) - funkcija za slanje poruke s gumbima. Parametri: ID korisnika (id), tekst poruke (ne može biti prazno) (tekst), niz s gumbima (gumbi), ne traženi parametar one_time, prema zadanim postavkama false, ako je postavljeno na true, nakon pritiska bilo kojeg gumba tipkovnica će nestati.
zahtjev(metoda, argumenti_niza) — univerzalna funkcija rad s metodama. Parametri: metoda — naziv metode iz službeni api, array_arguments — niz parametara.
sendOK() — Beta funkcija. Koristi se umjesto echo "ok", pomaže u slučajevima kada skripti treba dugo da se pokrene i bot počinje ponavljati poruke nekoliko puta.
VAŽNO: Ako koristite ovu funkciju, nećete vidjeti ispis pogreške. Prilikom otklanjanja pogrešaka zamijenite jekom "ok"
Cijeli kod bota u PHP-u
Sada prijeđimo na sam kod, gdje je gotovo svaki red komentiran.
Ovaj kod je podržan na PHP 5.6+
U bloku CONFIG navedite ključ za pristup zajednici, ključ za potvrdu poslužitelja i verziju API-ja koju ste odabrali.
Puni kod bot
"Ribe"], "Koje vrste postoje?", "plave"]; //Kod gumba "Riba" const BTN_BACK = [["command" => "start"], "<< Назад", "red"]; // Код кнопки "<< Назад" const BTN_SALMON = [["animals" =>"Ružičasti_losos"], "Ružičasti losos", "bijeli"]; // Kod za gumb "Pink Salmon" const BTN_GOLDFISH = [["animals" => "Goldfish"], "Goldfish", "blue"]; // Kod za gumb "Zlatna ribica" const BTN_PLOTVA = [["životinje" => "Plotva"], "Žohar", "zeleno"]; // Kod za gumb "Roach" $vk = new vk_api(VK_KEY, VERSION); // kreiranje instance klase za rad s api, prihvaća api ključ i verziju $data = json_decode(file_get_contents("php://input")); //Prima i dekodira JSON koji je došao iz VK if ($data->type == "confirmation") ( //Ako vk zahtijeva izlaz ključa(ACCESS_KEY); //Dovršite skriptu slanjem ključa) $vk-> pošaljiOK(); //Recite vk da smo prihvatili povratni poziv if (isset($data->type) and $data->type == "message_new") ( //Provjerite je li ova poruka od korisnika $id = $data->object - >from_id; //Dobivanje id-a korisnika koji je napisao poruku $message = $data->object->text; if (isset($data->object->peer_id)) $peer_id = $data->object ->peer_id; // Dohvati peer_id chata iz kojeg je poruka došla else $peer_id = $id; data->object->payload, True ); else ( $payload = null; ) if (isset($payload["command"]) or mb_strtolower($message) == "start") ( //Ako je početak tipka je pritisnuta ili<< назад $vk->sendButton($peer_id, "Želite li vidjeti ribu?", []); //Pošalji gumb korisniku ) else ( if ($payload != null) ( // ako korisni teret postoji switch ($payload["animals"]) ( //Pogledaj što se nalazi u tipkama korisnih tereta u slučaju "Ribe": //Ako je ovo Fish $vk->sendButton($peer_id, "Ovo su oni koje odaberete", [ //Pošalji gumbe korisniku, ]); case "Pink_losos": //Ako je ovo Pink Salmon $vk->sendMessage($peer_id, "Zadrži svoj roze losos!"); //pošalji poruku $vk->sendImage($peer_id, "img/pink_salmon.jpg"); Zlatna ribica": //Ako je ovo Zlatna ribica $vk->sendMessage( $peer_id, "Ona će ispuniti tvoje želje..."); $vk->sendImage($peer_id, "img/goldfish.jpg"); break ; case "Plotva": //Ako je ovo Roach $vk->sendMessage($peer_id, "Oh, izgleda da je slika pomiješana)"); jpg"); break;
uključi "vk_api.php" ; //Povežite biblioteku za rad s api vk //************KONFIG**************** const VK_KEY = "vaš_ključ" ; //najduži ključ za pristup zajednici const ACCESS_KEY = "vaš_ključ" ; //na primjer c40b9566, unesite svoj const VERZIJA = "5.80" ; //vaša verzija korištenog API-ja //****************************** const BTN_FISH = [ [ "animals" => "Fish" ] , "Što ima?" , "plavo" ] ; //Kôd gumba "Riba". const BTN_BACK = [ [ "command" => "start" ] , "<< Назад" , "red" ] ; // Kôd gumba "<< Назад" const BTN_SALMON = [ [ "animals" => "Pink_losos" ] , "Pink losos" , "white" ] ; // Kod za gumb "Pink salmon". const BTN_GOLDFISH = [ [ "animals" => "Zlatna ribica" ] , "Zlatna ribica" , "plava" ] ; // Kod za gumb "Zlatna ribica". const BTN_PLOTVA = [ [ "životinje" => "Uloga" ] , "Žohar" , "zeleno" ] ; // Kod za gumb "Žohar". $vk = novi vk_api (VK_KEY, VERZIJA) ; // kreiranje instance klase za rad s api, prihvaća api ključ i verziju $data = json_decode (file_get_contents ( "php://input" ) ); //Prima i dekodira JSON primljen od VK if ($data -> type == "confirmation" ) ( //Ako vk zahtijeva ključ izlaz(PRISTUPNA_KLJUČ); //Dovršite skriptu slanjem ključa $vk -> pošaljiOK (); //Recite vk da smo prihvatili povratni poziv if (isset ($data -> type ) and $data -> type == "message_new" ) ( //Provjeri je li ovo poruka od korisnika $id = $podaci -> objekt -> from_id ; //Dohvati ID korisnika koji je napisao poruku $message = $data -> object -> text ; if (isset ($data -> object -> peer_id ) ) $peer_id = $data -> object -> peer_id ; // Dobivanje peer_id chata iz kojeg je poruka stigla drugo $peer_id = $id; if (isset ($data -> object -> payload) ) ( //dobi korisni teret $payload = json_decode ($data -> object -> payload, True); ) inače ( $korisni teret = null; if (isset ($payload [ "command" ] ) ili mb_strtolower ($message ) == "start" ) ( //Ako se pritisne tipka za pokretanje ili<< назад |
U kontaktu s
Da biste stvorili widget za VKontakte, slijedite vezu - https://vk.com/dev/sites
Na ovoj stranici možete izraditi različite widgete za interakciju između mogućnosti VK-a i vaše web stranice.
- Web stranica\aplikacija: Ako nemate web stranicu povezanu s VK api, prvo je morate povezati. Da biste to učinili, s padajućeg popisa odaberite "Poveži novo mjesto".
- Naziv stranice: Unesite bilo koji naziv.
- Adresa stranice - unesite adresu povezane stranice.
- Glavna domena stranice automatski se registrira.
- Tema stranice - odredite temu svoje stranice.
- Broj komentara - odredite najveći broj komentara za prikaz.
- Mediji - dodaje gumb "Priloži" u obrazac za komentar.
- Širina - unesite širinu widgeta.
- Kod za ugradnju - ovaj kod možete umetnuti na bilo koje željeno mjesto na vašoj stranici. Pohranjuje jedinstveni apiID, koji se koristi u mnogim Joomla proširenjima web mjesta.
Za izradu widgeta za Facebook slijedite poveznicu - https://developers.facebook.com/docs/plugins
Na ovoj stranici možete izraditi različite widgete za interakciju između značajki Facebooka i vaše web stranice.
Primjer izrade widgeta za komentare:
Proces izrade je isti kao i za VK.
Ako niste izradili aplikaciju, trebate je izraditi. Da biste to učinili, kliknite na stavku izbornika "Aplikacije" i odaberite "Stvori novu aplikaciju".
Ime za prikaz: Unesite naziv aplikacije.
Imenski prostor: Unesite jedinstveni identifikator (možda naziv vaše stranice).
Kliknite "Izradi aplikaciju", unesite kod za provjeru i prijeđite izravno na izradu widgeta.
Širina: Odredite širinu widgeta.
Broj postova: Odaberite najveći broj komentara za prikaz.
Shema boja: Odaberite shemu boja widgeta.
Kliknite "Dohvati kod"
Nakon klika iskače prozor u kojem je pohranjen api ID.
Ako trebate brzo i bez napora ubaciti bilo koji widget u joomla stranicu, pročitajte OVAJ članak.
p.s. Ostali widgeti za ove društvene mreže izrađuju se na isti način.
Imate li VKontakte zajednicu? Događa li se da je netko napisao negativan komentar, uvrijedio nekoga ili jednostavno napisao recenziju o vašoj tvrtki ili pitanje na koje treba brzo odgovoriti? Mi u PushAll-u napisali smo mikroservis koji vam omogućuje primanje obavijesti o raznim događajima u vašim zajednicama. Činjenica je da se VKontakte nedavno pojavio API povratnog poziva za zajednice, a odlučili smo ga upotrijebiti tako da ga premestimo iz API-ja u format push obavijesti.
Kako ga koristiti?
![](https://i2.wp.com/habrastorage.org/files/d25/23d/2dd/d2523d2dd4d84736a8079eeaa08027a6.png)
Samo se trebate pretplatiti na kanal mikroservisa i slijediti upute
Adresu mikroservisa unesete u poseban odjeljak u postavkama svoje grupe, au postavkama mikroservisa unesete kod koji VKontakte treba za provjeru. Također morate proći autorizaciju kroz OAuth VK kako bi mikroservis mogao primati podatke o korisnicima - avatare i imena.
Nakon toga primit ćete sve obavijesti koje navedete u odjeljku “Vrste događaja”.
Međutim, morate razumjeti da nisu podržane sve vrste događaja:
- Poruke
- Komentari
- Postovi
- Odjava/Prijava u zajednicu
- Rasprave
Preostale vrste trenutno dolaze u obliku "Nepodržana obavijest" i prenose sav JSON koji VKontakte šalje. Bit će gotovi u roku od tjedan dana.
Gdje dolaze obavijesti?
Za one koji ne znaju gdje PushAll šalje obavijesti:- Android aplikacija
- Dodatak za Chrome s poviješću
- Web gura u chrome (Android+PC), Yandex preglednik, vivaldi, firefox, Safari
- Telegram bot
- iOS (beta)
Sigurnost
VKontakte je poduzeo temeljit pristup sigurnosti - skripta prima samo podatke koje navedete i nema pristupa kontroli. Omogućavanje pristupa API-ju, koji je potreban za avatare i korisnička imena, zahtijeva samo izvanmrežno dopuštenje, a ne zahtijeva čak ni e-poštu korisnika.Ograničenja
Mikroservis je potpuno besplatan. Možete povezati nekoliko zajednica ako za njih navedete istu adresu mikroservisa i svaki put promijenite kontrolni kod u postavkama mikroservisa. To jest, možete povezati neograničen broj grupa za primanje obavijesti.U isto vrijeme, sada nema filtriranja - to jest, sve što navedete u VK doći će vam kao push obavijesti. U budućnosti će se nazivati:
- Omogućite prijenos JSON-a na drugu skriptu, odnosno možete koristiti AdminVK kao proxy, primati obavijesti i proslijediti zahtjev dalje svojoj skripti zbirke analitike ili negdje drugdje
- Omogućite navođenje ID-ova pouzdanih korisnika i ID-ova korisnika koji bi trebali primati obavijesti. Oni. moći ćete dijeliti, kao administrator, svoje push obavijesti svojim moderatorima
- Filtriraj po riječima. Na primjer, ne primate sve push obavijesti, već samo one koje sadrže imena određenih brendova - s jedne strane, spominjanje brenda nije razlog za zabranu, već ovisi o kontekstu
- Distribucija obavijesti između moderatora, tj. na temelju druge točke, bit će moguće ravnomjerno rasporediti dolazne obavijesti kako bi se smanjilo opterećenje ljudi
Zašto nam ovo treba?
U biti, ovo je “proof-of-concept”, odnosno ovaj mikroservis je kreiran da pokaže kako se mogućnosti PushAll-a mogu koristiti za male servise vezane uz obavijesti. Na primjer, trebalo mi je oko 1 sat da napišem cijeli mikroservis da bude spreman za rad u obliku prve alfe, dok u biti koristim standardni PushAll API i svatko može napisati i svoj mikroservis koji može slati obavijesti korisnicima na razne događanja na mnogim platformama.Ovo je samo prvi mikroservis od mnogih koje ćemo napraviti kasnije.