Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Windows 8
  • Kako prekinuti vezu bez gubitka zajedničkih prijatelja. Algoritam za određivanje odjeljka "Mogući prijatelji".

Kako prekinuti vezu bez gubitka zajedničkih prijatelja. Algoritam za određivanje odjeljka "Mogući prijatelji".

Pozdrav, habrowser.
Jednog dana sam imao potrebu pronaći osobu, poznavajući njen izgled i članstvo u nekom klubu. Posjedovao sam i adrese (VKontakte) stranica još dva člana kluba. Gotovo je sigurno da je osoba koju su tražili bila prijatelj svakog od njih. Ovaj problem se može riješiti na različite načine. U članku ću pisati o tome kako sam implementirao rješenje koristeći vk.com API.
1.Zadatak
Napravite uslugu koja će pronaći sve zajedničke prijatelje dva pojedinačna korisnika, bez potrebe za verifikacijom i računom na društvenoj mreži za korisnike usluge. Dobijte informacije o zajedničkim prijateljima:
  • fotografija
Implementirajte zadatak na temelju VKontakte API-ja. Napišite hotelsku klasu za ovo.
2. Rješenje
2.1.Definiranje potrebnih API metoda
Idemo popis metoda API. I nakon traženja nalazimo ono što nam treba.

Postoji metoda za pridobijanje korisnikovih prijatelja prijatelji.dobiti.
prijatelji.dobiti - vraća popis korisničkih ID-ova prijatelja ili proširene informacije o korisnikovim prijateljima (ako se koristi parametar fields).

I što je bitno, kao dio rješenja zadatka, ovo je otvorena metoda koja ne zahtijeva access_token.

Postoji samo jedan potreban parametar:

Koristeći ovu metodu, moguće je dobiti podatke o svim prijateljima svakog od naša dva skupa, ali ovaj pristup neće biti optimalan. Korisnik A može imati 2000 ljudi kao prijatelje, ali samo 3 osobe će se ukrstiti s prijateljima korisnika B. U ovom slučaju podaci o 1997 korisnika bit će nam nepotrebni, a resursi utrošeni na njihovo dobivanje bit će uzalud potrošeni.
Tražit ćemo samo korisničke ID-ove, a nakon što dobijemo brojeve koji su nam potrebni (koji pripadaju skupu A i B), iz njih ćemo odabrati informacije.

Postoji metoda za dobivanje informacija o korisniku korisnici.dobiti.
korisnici.dobiti -Vraća proširene informacije o korisnicima.

Ova metoda također ne zahtijeva access_token, što znači da je idealna za naš zadatak.


U user_ids ćemo proslijediti niz korisničkih ID-ova koji se pojavljuju u oba skupa.
Želimo primiti samo avatar veličine 100*100; za to ćemo proslijediti vrijednost photo_100 u parametru polja.

2.2 Prijeđimo na praktičnu stranu
Napisao sam jednostavnu klasu u php-u:

Klasa VkFriends ( javna funkcija clean_var($var) ( $var = strip_tags($var); $var = preg_replace("~\D+~", "", $var); $var = trim($var); return $ var; ) javna funkcija get_friends($u_id) ( $friends = file_get_contents("https://api.vk.com/method/friends.get?user_id=".$u_id); $friends = json_decode($friends); if(!isset($friends->error))( return $friends; )else( return ""; ) ) javna funkcija mutual_friends($friends) ( $mutual = array_intersect($friends->response, $friends->response) ); if(!empty($mutual))( return $mutual; )else( return ""; ) ) javna funkcija get_users_info($users) ( $u_ids = implode(",",$users); $u_info = file_get_contents ("https://api.vk.com/method/users.get?user_ids=".$u_ids."&fields=photo_100"); $u_info = json_decode($u_info); return $u_info; ) javna funkcija view_user_info( $u_info) ( $uid = $u_info->uid; $first_name = $u_info->first_name; $last_name = $u_info->last_name; = $u_info->photo_100; print("

"); ) javna funkcija view_users_info($users_info) ( for($i=0;$i) odgovor);$i++)( $this->view_user_info($users_info->response[$i]); ) ) )

Sada pogledajmo našu klasu na djelu:

$vkf = novi VkFriends; $u_id = $vkf->clean_var($_POST["u1"]);//očisti varijable iz POST-a $u_id = $vkf->clean_var($_POST["u2"]); if(($u_id!="")&&($u_id!=""))( echo "

"; $friends = $vkf->get_friends($u_id);//dobivanje popisa prijatelja od korisnika s u_id $friends = $vkf->get_friends($u_id); if(($friends!="")&&($ prijatelji!=""))( $mutual = $vkf->mutual_friends($friends);//kreiraj novi niz iz intersektnih nizova if($mutual!="")( $users_info = $vkf->get_users_info($mutual );//dobivanje informacija o korisnicima koji su zajednički $vkf->view_users_info($users_info);//prikaz informacija o odabranim korisnicima )else( print("
Pozdrav, habrowser.
Jednog dana sam imao potrebu pronaći osobu, poznavajući njen izgled i članstvo u nekom klubu. Posjedovao sam i adrese (VKontakte) stranica još dva člana kluba. Gotovo je sigurno da je osoba koju su tražili bila prijatelj svakog od njih. Ovaj problem se može riješiti na različite načine. U članku ću pisati o tome kako sam implementirao rješenje koristeći vk.com API.
1.Zadatak
Napravite uslugu koja će pronaći sve zajedničke prijatelje dva pojedinačna korisnika, bez potrebe za verifikacijom i računom na društvenoj mreži za korisnike usluge. Dobijte informacije o zajedničkim prijateljima:
  • fotografija
Implementirajte zadatak na temelju VKontakte API-ja. Napišite hotelsku klasu za ovo.
2. Rješenje
2.1.Definiranje potrebnih API metoda
Idemo popis metoda API. I nakon traženja nalazimo ono što nam treba.

Postoji metoda za pridobijanje korisnikovih prijatelja prijatelji.dobiti.
prijatelji.dobiti - vraća popis korisničkih ID-ova prijatelja ili proširene informacije o korisnikovim prijateljima (ako se koristi parametar fields).

I što je bitno, kao dio rješenja zadatka, ovo je otvorena metoda koja ne zahtijeva access_token.

Postoji samo jedan potreban parametar:

Koristeći ovu metodu, moguće je dobiti podatke o svim prijateljima svakog od naša dva skupa, ali ovaj pristup neće biti optimalan. Korisnik A može imati 2000 ljudi kao prijatelje, ali samo 3 osobe će se ukrstiti s prijateljima korisnika B. U ovom slučaju podaci o 1997 korisnika bit će nam nepotrebni, a resursi utrošeni na njihovo dobivanje bit će uzalud potrošeni.
Tražit ćemo samo korisničke ID-ove, a nakon što dobijemo brojeve koji su nam potrebni (koji pripadaju skupu A i B), iz njih ćemo odabrati informacije.

Postoji metoda za dobivanje informacija o korisniku korisnici.dobiti.
korisnici.dobiti -Vraća proširene informacije o korisnicima.

Ova metoda također ne zahtijeva access_token, što znači da je idealna za naš zadatak.


U user_ids ćemo proslijediti niz korisničkih ID-ova koji se pojavljuju u oba skupa.
Želimo primiti samo avatar veličine 100*100; za to ćemo proslijediti vrijednost photo_100 u parametru polja.

2.2 Prijeđimo na praktičnu stranu
Napisao sam jednostavnu klasu u php-u:

Klasa VkFriends ( javna funkcija clean_var($var) ( $var = strip_tags($var); $var = preg_replace("~\D+~", "", $var); $var = trim($var); return $ var; ) javna funkcija get_friends($u_id) ( $friends = file_get_contents("https://api.vk.com/method/friends.get?user_id=".$u_id); $friends = json_decode($friends); if(!isset($friends->error))( return $friends; )else( return ""; ) ) javna funkcija mutual_friends($friends) ( $mutual = array_intersect($friends->response, $friends->response) ); if(!empty($mutual))( return $mutual; )else( return ""; ) ) javna funkcija get_users_info($users) ( $u_ids = implode(",",$users); $u_info = file_get_contents ("https://api.vk.com/method/users.get?user_ids=".$u_ids."&fields=photo_100"); $u_info = json_decode($u_info); return $u_info; ) javna funkcija view_user_info( $u_info) ( $uid = $u_info->uid; $first_name = $u_info->first_name; $last_name = $u_info->last_name; = $u_info->photo_100; print("

"); ) javna funkcija view_users_info($users_info) ( for($i=0;$i) odgovor);$i++)( $this->view_user_info($users_info->response[$i]); ) ) )

Sada pogledajmo našu klasu na djelu:

$vkf = novi VkFriends; $u_id = $vkf->clean_var($_POST["u1"]);//očisti varijable iz POST-a $u_id = $vkf->clean_var($_POST["u2"]); if(($u_id!="")&&($u_id!=""))( echo "

"; $friends = $vkf->get_friends($u_id);//dobivanje popisa prijatelja od korisnika s u_id $friends = $vkf->get_friends($u_id); if(($friends!="")&&($ prijatelji!=""))( $mutual = $vkf->mutual_friends($friends);//kreiraj novi niz iz intersektnih nizova if($mutual!="")( $users_info = $vkf->get_users_info($mutual );//dobivanje informacija o korisnicima koji su zajednički $vkf->view_users_info($users_info);//prikaz informacija o odabranim korisnicima )else( print("

Društvena mreža "VKontakte" jedan je od najpopularnijih internetskih projekata u cijeloj Rusiji i zemljama post-sovjetskog prostora. Svakog dana, godinu za godinom, resurs koriste milijuni korisnika koji posjećuju web stranicu vk.com ne samo da međusobno komuniciraju, već i da saznaju novosti, slušaju svoje omiljene audio zapise, gledaju film ili TV serije, saznajte nešto zanimljivo pa čak i napravite planove.gdje otići ažurirati svoju garderobu.

Trenutačno svatko može dodati do 10 tisuća drugih "stanovnika" društvene mreže kao prijatelje, a, kako pokazuju statistike, prosječni korisnik resursa ima oko 200-300 ljudi kao prijatelje. Međutim, kada pregledavate popis svojih VKontakte prijatelja, možete neočekivano otkriti da su smješteni različitim redoslijedom i ponekad mogu promijeniti mjesta. Zašto se to događa i kako se formira cijela ova lista?

Kao što je bilo prije

Prije nego što odgovorim na gore postavljeno pitanje, želio bih vas podsjetiti kako je popis prijatelja VKontakte formiran nekoliko godina ranije. Prije samo nekoliko godina ljudi koji se pojavljuju na korisnikovom popisu prijatelja bili su razvrstani po ocjeni. Ovdje je sve jasno: što je korisnikova stranica imala veću ocjenu, to je više bio prikazan na popisu prijatelja. Ocjene možete dobiti ispunjavanjem podataka na vlastitoj stranici ili kupnjom dodatnih glasova. Kasnije je odlučeno da se odustane od ocjenjivanja, što je jako uznemirilo korisnike koji su kupili velik broj glasova i/ili ih dali drugim "stanovnicima" društvene mreže.

Kako se sada formira lista prijatelja?

Sada se formira lista prijatelja na najpopularnijoj društvenoj mreži na drugi način: Na prvim pozicijama na listi su oni korisnici s kojima najčešće komunicirate. Međutim, takvo sortiranje VK liste prijatelja može zbuniti neke korisnike. Na primjer, neki se ljudi pitaju zašto je osoba s kojom je komunikacija izuzetno rijetka tako visoko na listi. Odgovor je jednostavan - prilikom izrade popisa ne uzimaju se u obzir samo poruke, već i lajkovi, pregledi stranica, odgovori i komentari na objave. Ispostavilo se da prva osoba na vašoj listi prijatelja ne može biti samo korisnik s kojim ne komunicirate toliko puno.

Međutim, postoji jedna mala iznimka od ovog pravila: korisnici koje ste nedavno dodali na popis prijatelja obično se nalaze na 5. ili 6. mjestu na popisu tako da ih, prema developerima društvene mreže, ne gubite iz vida .

Redoslijed prijatelja koji su na stranici

Sada je vrijedno spomenuti kako se korisnici razvrstavaju s liste prijatelja na mreži. Ovdje, uglavnom, potpuno isti princip: lokacija prijatelja odgovara onom u općem nizu, iako su prikazani samo oni korisnici koji su na mreži. Ako koristite opcije "Kolege", "Najbolji prijatelji" i slične opcije, distribucija popisa prijatelja u njima također će biti slična.

Kako se nalazi popis prijatelja drugih korisnika

Ako je situacija s lokacijom vlastitih prijatelja već više-manje jasna, što bismo onda trebali učiniti s prijateljima drugih korisnika koje vidimo s vlastite stranice? Ovdje je sve malo drugačije: raspodjela prijatelja ovdje se temelji na broju zajedničkih poznanika s osobom čiju stranicu gledate. Ukoliko nemate zajedničke prijatelje, lista prijatelja se formira prema datumu registracije korisnika na stranici.

Je li moguće promijeniti redoslijed?

Nakon što je sve postalo jasno o sortiranju VKontakte prijatelja, možemo razgovarati o tome može li se ovaj redoslijed promijeniti. Nažalost, programeri društvene mreže nisu osigurali ovu funkciju, tako da ne možete sami promijeniti redoslijed prijatelja.

Ako želite zadržati nekoga tko vam je blizak na vrhu liste prijatelja, pokušajte više komunicirati s njim. Inače, komunikaciju svedite na minimum. Ipak, ne zaboravite da nikakve društvene mreže ne mogu zamijeniti pravu komunikaciju s prijateljima i vama bliskim osobama!

Društvena mreža VKontakte ujedinjuje ljude, au nju se neprestano uvode različiti algoritmi kako bi korisnicima bilo lakše pronaći svoje prijatelje, rođake i jednostavno poznanike koje su možda vidjeli nekoliko puta, ali pri susretu nisu imali vremena ili nisu ne želim dodati jedno drugo kao prijatelje. . Jedan od načina za brzo dodavanje novih ljudi na popis prijatelja je korištenje VKontakte alata "Mogući prijatelji". U članku ćemo razmotriti princip rada ovog algoritma, kao i kako ga koristiti.

Kako vidjeti moguće prijatelje na VKontakte

Da biste vidjeli korisnike koje društvena mreža VKontakte smatra vašim potencijalnim prijateljima, samo idite na odjeljak "Prijatelji" na svojoj stranici. U donjem desnom kutu stranice koja se otvori, ispod popisa za filtriranje trenutnih prijatelja, nalazit će se blok "Mogući prijatelji".

Svaki put kada posjetite stranicu, ona se formira na novi način. Ovaj blok prikazuje 5 osoba koje možda poznajete. Ako želite vidjeti više mogućih prijatelja, kliknite gumb "Prikaži sve" u ovom bloku.

Nakon toga će se otvoriti stranica koja prikazuje sve korisnike koji su definirani kao mogući prijatelji vaše stranice. Ovisno o tome koliko aktivno koristite svoj VKontakte račun, kao i o nizu drugih čimbenika, količina korisničkih podataka može varirati. Pomaknite se prema dolje na stranici i novi potencijalni prijatelji automatski će se učitati.

Imajte na umu: iako ova stranica ima razne filtre na vrhu i desno, oni vam ni na koji način ne dopuštaju filtriranje popisa mogućih prijatelja. To jest, ako koristite gornju pretragu i, na primjer, pokušate pronaći sve moguće prijatelje s imenom "Sergey", društvena mreža će jednostavno početi tražiti korisnike s imenom "Sergey" u svojoj bazi podataka, bez fokusiranja na popis mogućih prijatelja odabranih za vas.

Kako se određuju mogući prijatelji VKontakte?

Tvrtka VKontakte ne otkriva algoritme pomoću kojih se formira popis mogućih prijatelja za svakog određenog korisnika. Međutim, promatranja pokazuju da popis mogućih prijatelja jasno ovisi o:

Važno je napomenuti da korisnik nema mogućnost vidjeti za koga je naveden kao navodni prijatelj. Odnosno, ove informacije nisu zajedničke za korisnike. Ako vidite da je korisnik VKontakte naveden kao mogući prijatelj, na primjer, jer često posjećujete njegovu stranicu, to ne znači da će vas navesti kao prijatelja. Naravno, s izuzetkom situacije kada, kada posjetite stranicu, pokazujete aktivnost na njoj u obliku lajkova, repostova, komentara i tako dalje.

Jeste li vi i vaš bivši/bivši stekli puno novih prijatelja tijekom vaše veze? Tužno je, ali sada se rastajete. Kako prekinuti vezu s bivšim, a da ne izgubite zajedničke prijatelje?

Koraci

    Ne raspravljajte s njima o svom prekidu. U takvoj situaciji uvijek postoje dva gledišta. Sačuvajte svoje za razgovor s obitelji i onim prijateljima koje ste poznavali prije nego što ste ušli u vezu.

    Nikad nemoj reći ništa loše o svom bivšem. Samo zato što ne razgovarate o prekidu ne znači da možete reći ružne stvari o toj osobi koje nisu povezane s prekidom. Kad ljudima koji su zajednički prijatelji govorite neugodne stvari, dovodite ih u vrlo neugodan položaj jer žele ostati vjerni i vama i vašem bivšem.

    Pažljivo otkrivajte informacije. Jer je tvoja su česti prijatelji, zapamtite da sve što im kažete može doći do vašeg bivšeg. To može uništiti sve vaše pokušaje rastanka u dobrim odnosima.

    Ostati u kontaktu. Ovaj trenutak je vrlo težak, jer vas zajednički prijatelji čvrsto povezuju starim vezama - i u srcu i u umu. Međutim, ako želite zadržati prijateljstvo, morate shvatiti da vaši zajednički prijatelji možda jednostavno ne znaju kako se ponašati s vama u ovoj situaciji, pa im morate pokazati (telefonskim pozivom ili e-poštom) da želite nastaviti ostati u kontaktu . Kao što je već rečeno, trebali biste paziti da prijateljima ne otkrijete informacije za koje ne želite da vaš bivši zna; međutim, podijelite s njima svoje osjećaje i iskustva o onome što se događa kako bi se i dalje osjećali dijelom vašeg života. Možete reći, na primjer, "Kada se sve uzme u obzir, osjećam se prilično dobro. Zasigurno nije lako početi ispočetka, ali nadam se da je najgore prošlo i da sam spreman nastaviti dalje."

    Ako već izlazite s nekim novim, držite ga podalje od zajedničkih prijatelja. Sastanak može izazvati bijes i bit će popraćen negativnim predrasudama, jednostavno zato što je novi Ljubav. Prijatelji će se osjećati kao da će izdati svog prijatelja (vašeg bivšeg) ako im se sviđa vaš novi partner koji je zauzeo njegovo mjesto. Do određenog trenutka svoje nove simpatije držite u tajnosti. Pričekajte da se “prašina raščisti” i osjetite čvrsto tlo pod nogama – tek nakon toga možete pokušati upoznati svoje zajedničke prijatelje s novom simpatijom.

    Što se tiče vaših zajedničkih sastanaka, ne biste trebali očekivati ​​da ćete samo vi biti pozvani od para. Neki od vaših prijatelja neće se htjeti suočiti s teškim izborom koga pozvati – vas ili vašeg bivšeg. Najvjerojatnije će vas oboje pozvati s idejom da ste odrasli i da ćete sami riješiti situaciju. U velikim tvrtkama to je sasvim prikladno, ali u uskom krugu bliskih prijatelja bit će ne-o-o-vko. Izbjegnite takve situacije izravnim pitanjem hoće li vaš bivši biti na zabavi. Gotovo će vam sigurno odgovoriti iskreno. Ne izazivajte bijes tako da se prijatelj koji vas je pozvao osjeća krivim. Samo izrazite svoje žaljenje ako mislite da će ovaj sastanak biti neugodan za oboje: "Oh, dobro... Vjerojatno neću ići, bit će to pretijesno društvo. Ali ne brini, možemo se naći zajedno neki drugi put, kad bude više ljudi i kad možemo skrenuti misli." Nasmiješite se, budite ljubazni i zahvalite osobi što misli na vas.

    Ne gubite dostojanstvo i ponašajte se plemenito. U neumjesnom pokušaju da vas uvjere da su na "vašoj strani", prijatelji bi mogli nekoliko puta zamjeriti vašem bivšem. Ne biste se trebali veseliti ismijavanju bivšeg, a nikako se ne biste trebali upuštati u takve šale. Upamtite: ovi prijatelji najvjerojatnije rade istu stvar vama kada komuniciraju s vašim bivšim.

    • Umjesto toga, smireno i dojmljivo recite nešto poput ovoga: "Znate ljudi, bio sam ljut tijekom prekida, ali sada osjećam žaljenje i tužan sam. Imali smo puno dobrih stvari tijekom naše veze. Unatoč "Činjenica je da sada moramo ići dalje, ne žalim za vremenom koje smo proveli zajedno. Da nije bilo ____(ime bivšeg), nikad te ne bih upoznao." Nakon toga samo šuti. Vaši prijatelji će kimati u odgovor i cijeniti vaša visoka moralna načela.
  1. Neka se vrijeme pobrine za ostalo. Prekid je kao slomljena ruka. Vraški boli i ne možete puno učiniti nakon što stavite gips osim dati vremena. Sve što možete učiniti je podnijeti bol i nositi se s promjenama koje su se dogodile u vašem životu. S vremenom, ako ne kritizirate bivšeg ili ne sudjelujete u ismijavanju, vaši će prijatelji shvatiti da ste to preboljeli i da idete dalje.

  • S vremenom će vaše prijateljstvo ojačati u novim uvjetima. Prijatelji će vas početi doživljavati ne kao dio para, već kao pojedinca. Tek nakon toga možete ih inicirati u vašu novu romantičnu vezu.
  • Vaši prijatelji također trebaju vremena. Poznavali su vas kao dio para koji su voljeli, a sada se i oni moraju prilagoditi novim okolnostima. Mogu dati neugodne ili čak ljutite primjedbe jer ne znaju koga bi krivili za ono što se dogodilo ili što učiniti. Budite nježni s njima i imajte na umu da oni jednostavno ne razumiju kako se ponašati u ovoj situaciji.
  • Kada idete na zabave ili izlazite sa zajedničkim prijateljima, nemojte se ustručavati pitati ih je li vaš bivši pozvan. Objasnite svojim prijateljima da vam je potrebno malo vremena i malo osobnog prostora da budete spremni biti u bližem kontaktu s bivšim nego što će to biti na zabavama s puno ljudi.

Upozorenja

  • Može se pokazati da neki od vaših “prijatelja” uopće nisu takvi. Čuvajte se špijuna koji vas potajno motre dok prikupljaju informacije za vašeg bivšeg. Ovo upozorenje posebno vrijedi ako prolazite kroz razvod. I u ovoj situaciji bit će vam više nego ikad drago što niste otkrili svoje nove lajkove.
  • Nemojte žuriti s rješavanjem prekida previše ok ili previše rano. Zapamtite da i vaši zajednički prijatelji gaje tople osjećaje prema vašem bivšem. Ako se osjećaju kao da si ga lako izbacila iz svog života, kao da je bio nešto nepotrebno (čak i ako jest), tvoji će prijatelji misliti da si hladan i bezosjećajan. Oduprite se iskušenju da pokažete zgodnog novog tipa (vruću novu djevojku), i umjesto toga usredotočite se na osjećaje svojih prijatelja.
  • Bilo kakve sarkastične ili agresivne primjedbe prema vašem bivšem kritično će smanjiti vaše šanse da održite prijateljstvo sa svojim zajedničkim prijateljima.

Najbolji članci na temu