Vkinviter - priglashatel asszisztens tisztviselők VKontakte csoportok

Fejlesztés → VkInviter - priglashatel asszisztens tisztviselők VKontakte csoportok

Minden jó napot!

Én vagyok a rendszergazda az egyik zenei csoport VKontakte (a továbbiakban - EC). Zenészek gyakran turnézik a különböző városokban Magyarországon és a FÁK országokban. Az egyik módja, hogy tájékoztassa a rajongók a csoport a közelgő koncert a városban - küld ki meghívót az érintett ülést a VC.
Ebben a cikkben szeretnék megmutatni az egyik lehetséges megoldás erre a problémára.

Először is, meg kell, hogy legyen a rendszergazda a csoport és ez a csoport VC kell a szervező a találkozó a VC.

Határozat „minden kézzel”


A meglévő felület lehetővé teszi, hogy egy ilyen levelezési lista segítségével manuálisan is vezérelhető menü az ülés:
„Hívja meg barátait” - „Hívd a csoport tagjai”:

Hátránya ennek a megoldásnak nyilvánvaló:
  • Hosszú ideig, mert egyes városokban, a résztvevők száma több, mint néhány ezer
  • Lehetetlen, hogy teljesíti a felhívásban résztvevők él egy adott városban
Megoldás „automatizálni a folyamatot”


Két módja van: írj egy alkalmazást VC API, vagy egy önálló utáni kap kéréseket.

Az elemzést követően, rájöttem, hogy a VC API nem alkalmas. A módszer leírását a felhasználó számára nem meghívások egy találkozó, és nem igazán akar bajlódni a bejegyzési kérelem és más belső közösségi szabályok alól.

Ezért meg kell vizsgálni a poszt-get kéri, és írni „szimulátor” felhasználó.

Ventilátorok N


A listát a csoport tagjait minden városban fogja használni a normál keresési vk.com/search, különösen fontos ez a szűrő beállítása:

Hogyan küld meghívót a csoportba

Készíts egy keresés a csoport tagjai lehetnek egy csoportja oldalak, a kérés formájában:
al_search.php? al = 1c [csoport] = 6206c [rész] = emberek

ahol a csoport - id-csoport.

Hozzáadása után szűrés ország és város kérés formájában:
al_search.php? al-1c [város] = 1c [ország] = 1c [csoport] = 6206c [pont] = ember

ahol, illetve városi - id város, ország - id ország

A válasz a kérdésre van egy lista a felhasználók számára.
Response Fejes hordoz két fontos következménnyel jár:
"Has_more": true, "offset": 200

has_more - meghatározza, hogy több felhasználó kiadni
ofszet - «behúzás”, vagy váltani az első felhasználó

A blokk információt a felhasználó a formája:


Ebben a blokkban érdekes adat:
  • id
  • név
  • href oldal

Elemezni a válasz meglehetősen kényelmes reguláris kifejezéseket.
Id használom ezt a kifejezést:
"] * Onmouseover = "Searcher.bigphOver \\ (e, (\\ d +) \\)"> "

Ahhoz, hogy a név és a href:
"

([^<]+)<";

Ebben a megközelítésben van egy szintetikus restrikciós - kapcsolat nem termel több mint 1000 eredményt. Ez kritikus, mert például, Moszkva, egy csoport 3000+ tagjai. Ahhoz, hogy ezt a korlátozást kellene hozzá további szűrést a felhasználókra, és egyesítsük az eredmények minden szűrőnek.

Elérhető szükséges, hogy csak azok a szűrők, amelyeknek fix értékek, és nem annyira.
Erre a feladatra, illik:
Nemek - [szex], értéke: 0-2
Sorrend - [sortId] értékek 0-1
Családi állapot - [statusId], az értékek 0-7.

Ruby on a mell néz ki:


Ez biztosítja a felhasználók listája a városban.

Ha mi meghívót küldeni kézzel, azt látjuk, hogy ez a postán:
hatnak = a_inviteal = 1gid = 65898108hash = 99247d766b77d7a584mid = 22935

ahol gid - id a találkozó, mid - id felhasználó hash - egy hash, információt hordozó a meghívó. És ez a hash most szükséges, hogy az összes felhasználó számára a listánkon.

Első hash


A hash kell elemezni a listán a „barátok”, hogy én is meghívhat az ülésen. Barátok felsorolt ​​idézetek, mert Itt az e fogalom az összes tagja a szervező.

C #, ez az ellenőrzés a következő:


A kezelés után a „barátok” listáját, és beolvad a felhasználók listáját minden küldésre kész meghívók.

programot VkInviter


Ha automatizálni ezeket az intézkedéseket írt VkInviter programot.
A fő ablak jelenik meg a screenshot:

Hogyan küld meghívót a csoportba

Amellett, hogy ez az algoritmus, a program lehetővé teszi, hogy a kiválasztás több városban, ami fontos, ha meghívókat küldött nemcsak a város, hanem a környező területet.

A forráskód írt GitHub. is írt a forgatókönyvet, hogy rubin. ami hasznos lehet megérteni a teljes logika.

következtetés


Összefoglalva azt akarom mondani egy pár szót a hatékonyságot.
Észrevettem, hogy mintegy 60% -a minden ember tilos meghívni magát a találkozón.
Elfogadta a meghívást az ülés jön, valahol 10%.
Nem tudom, hogy meddig marad működőképes a VC, és miért a lehetőséget, hogy meghívja mindannyian ittak néhány évvel ezelőtt.

Forrás használhatja bárki, bármilyen okból.