Accesul la Twitter de la linia de comandă

Utilizați Twitter pentru a construi aplicații interesante pentru linia de comandă

Arpan Senatorul Director Tehnic, Synapti Computer Aided design Pvt Ltd

Arpan Sen (Arpan Sen) - inginer de plumb lucrează la dezvoltarea software-ului în domeniul proiectării electronice de automatizare. Timp de mai mulți ani, el a lucrat la unele funcții UNIX, inclusiv Solaris, SunOS, HP-UX și IRIX, precum și Linux și Microsoft Windows. El a avut un interes deosebit în metodele de optimizare a performanței software-ului, teoria grafurilor, și de calcul paralel. Arpan este absolvent în sisteme software.

Instalarea gem-pack pentru Twitter

Pentru a accesa Twitter în Ruby are mai multe pachete de gem (a se vedea. Link-uri către informații suplimentare în secțiunea „Resurse“). În acest articol, am ales pachetul Twitter. Acest Ruby-înveliș pentru Twitter, scris de John Nyunmeykerom (John Nunemaker). Instalați acest pachet cu următoarea comandă:

Această comandă va seta clientul Twitter de pe computer. Dacă aveți un director special de instalare pentru gem pachete, script-ul va trebui să primul pachet rubygems apel. și apoi twitter pachet. așa cum se arată mai jos:

Primul script Twitter

Acum putem crea prima noastră aplicație proiectată pentru a urmări locația persoanelor care vă interesează. Începeți prin a crea un script care are ca intrare un cont de nume de utilizator Twitter și deducînd locația curentă. Listarea 1 cod privoden pentru un astfel de scenariu.

Listarea 1. locațiile utilizatorilor de urmărire

Ce se întâmplă în acest fragment de cod? Daca nu sunt foarte familiarizat cu Ruby, argv - o matrice prin care script-ul are acces la parametrii de linie de comandă. Call Twitter.user returnează o cantitate mare de informații despre utilizator, dar în acest moment, suntem doar interesați în locația respectivă. Rulați scriptul pentru a afla în cazul în care acestea sunt în acest moment, Lady Gaga (lady gaga), Ashton Kutcher (aplusk) și OPFR Winfrey (Orphah).

Utilizatorii de căutare și autentificare pe Twitter

Acum, să găsească unele specifice de utilizator deja înregistrat pe Twitter. Dacă vă puteți imagina numele contului Twitter pentru acest utilizator, apoi pur și simplu utilizați următoarea linie:

Cu toate acestea, este puțin probabil va fi capabil să ghicească în mod constant ID-urile de utilizator Twitter. În acest caz, avem nevoie de funcționalitatea pentru căutarea utilizatorului pentru numele contului său. Acest lucru ne va conduce la următoarea bucată de cod, de căutare pentru toți utilizatorii cu numele Arpan.

Cu toate acestea, performanța acestui cod va eșua. Listarea 2 arată un mesaj de eroare care explică esența problemei.

Listarea 2. Mesajul de eroare care a avut loc atunci când utilizatorul este în căutarea
  • Cheia consumatorului - (Cheie utilizator);
  • jeton de consum secrete - (jeton utilizator secrete);
  • Cheie de client OAuth - (User OAuth-cheie);
  • Consumatorilor OAuth secrete jeton - (User Secret OAuth marker).

Acum, în codul Ruby, aveți nevoie pentru a pune aceste valori în obiect Twitter.configure. așa cum se arată în Listarea 3.

Listarea 3. Configurarea scenariului pentru autentificare ulterioară

Rețineți că, în Listarea 3 pentru a umple atributele utilizate datele eșantionate, și va trebui să utilizați valoarea pe care ați primit-o. După autentificarea este efectuată, puteți găsi toți utilizatorii care folosesc contul Arpan. c folosind scenariul prezentat în Listarea 4.

Listarea 4. Căutați utilizatori Twitter

Acum puteți salva script-ul într-un fișier și a alerga search_for.rb echipa sa ./search_for.rb Arpan. pentru a obține o listă de nume prezentate în listarea 5.

Listarea 5. Rezultatul codului de pornire din Figura 4

Vă puteți aștepta pentru a vedea unele rezultate foarte bune. Nume Arpan (Arpan) - acest lucru este destul de un nume comun indian, asa ca de ce doar câțiva utilizatori cu același nume, a fost găsit? Acest lucru se datorează faptului că user_search apelului poate primi opțională de intrare (Ruby tabel hash); este posibil să se specifice opțiunile care pot ajuta returna mai multe rezultate. Prin urmare, puține schimbări în codul Listing 5 pentru transmiterea tabelului diez (#) umplut cu valorile necesare. De exemplu, dacă dorim să găsim rezultatul a fost reprezentat ca un set de pagini, fiecare dintre acestea ar conține 15 intrări, puteți utiliza codul în Listarea 6.

Listarea 6. S-au găsit 15 înregistrări pe pagină

Asta înseamnă că aveți posibilitatea de ieșire de o sută de intrări pe pagină? Nu, pentru că Twitter.user_search provocare limitează numărul maxim de intrări pe pagină douăzeci de înregistrări. În Listarea 7, codul redus care vă permite să obțineți 10 pagini, conținând 20 de intrări.

Listarea 7. Afișarea 20 înregistrări găsite pe pagina

E mai bine, pentru că afișează acum numele specificat în informațiile de utilizator, și alias-ul, setat de utilizator. Să trecem la mai multe sarcini complexe, și să încerce să găsească un utilizator cu numele Nick. Acesta este în prezent în New York (New York) și sunt mândru de Ruby. Puteți obține informații despre numele și locația apelului user_search utilizator. dar de unde stii raportul dintre utilizator la Ruby? Pentru a face acest lucru, va trebui să exploreze o altă oportunitate de Twitter API: personalizate clienții de căutare (clienți de căutare personalizate).

Folosind clasa Twitter :: Căutare

Clasa Twitter :: căutare pot fi folosite pentru a crea clienți de căutare personalizate, așa cum se arată în Listarea 8.

Listarea 8. Exemplu de clasa Twitter :: Căutare

Ce se întâmplă în acest fragment de cod? Acesta începe prin crearea unui client de căutare prin apelarea Twitter :: Search.new. Apoi, utilizați clientul de căutare pentru toate tweet-uri (mesaje) ale utilizatorului în cauză, care conține cuvântul rubin. La încheierea apelului fetch se întoarce o matrice cu rezultatele, iar în cazul în care cuvântul rubin este menționat în tweet-uri ale utilizatorului mai mult de 10 de ori, aceasta poate indica interesul său în acest limbaj de programare.

Încercați pentru a prelua o serie de tweet-uri cu #ruby hashtag folosind codul de mai jos:

Dar asta nu e tot, după cum probabil vă așteptați să primiți sute de intrări pentru acest hashtag popular ca #ruby. Din nou, utilizați clientul de căutare pentru a prelua rezultatele sale în funcție de pagină. Codul din Listarea 9 extrase 10 pagini care conțin tweet-uri dedicate limbii Ruby.

Listarea 9. Afișează mai multe pagini, obținute în rezultatele căutării

Caracteristici suplimentare în căutare Twitter

Desigur, aveți posibilitatea să mai multe condiții de lanț serie deoarece așa cum se arată mai jos.

Căutați o anumită expresie este, de asemenea, realizată intuitiv simplu ca în exemplul de mai jos:

După ce a aflat toate aceste informații necesare, putem trece la sarcini mai complexe!

Limitarea numărului de cereri Twitter

Așa cum vom continua să exploreze posibilitățile de Twitter, este timpul pentru a afla un alt aspect important în lucrul cu Twitter, care se numește limitatoare de viteză (restricții privind numărul de interogări executate). Twitter este foarte serios despre această restricție, permițând script-ul dvs. pentru a efectua o oră doar un anumit număr de cereri. După cum am văzut, unele tipuri de aplicații nu necesită autentificare explicită, în timp ce altele trebuie să se autentifice înainte de a rula interogarea. Pentru aplicațiile care nu utilizează OAuth -marker, limita este de 150 de cereri pe oră, aplicarea cu acest marker poate transporta până la 350 de cereri pe oră. Informații relevante despre politica de Twitter pentru a limita numărul maxim de cereri pot fi găsite în secțiunea „Resurse“. Pentru a vedea limita curentă, adăugați următoarea linie în script-ul care conține codul de autentificare pe Twitter.

Ca urmare, script-ul de pornire se va afișa un mesaj de genul următoarele:

De asemenea, puteți următorul apel pentru a obține informații actualizate cu privire la suma rămasă de interogări în cod.

Mai jos este de informații despre numărul maxim posibil de solicitări în cazul autentificarii cu handicap, și rețineți că 50% dintre interogările disponibile fost deja cheltuite.

actualizare a stării retweets Twitter și alte caracteristici

Termină pe studiul capacităților de căutare de Twitter si afla cum puteți actualiza starea pe Twitter folosind un script. Pentru a face acest lucru, avem nevoie doar de o singură linie (deși, desigur, script-ul trebuie să fie localizat și codul pentru autentificare).

Salvați acest cod în fișierul update.rb și apelați-l din linia de comandă, așa cum se arată mai jos.

Acum, actualizarea apare pe pagina noastră de cont Twitter. Comunicarea este funcționalitatea naturală a Twitter, astfel încât să putem trimite cu ușurință un mesaj către un alt utilizator.

Trimiterea unui mesaj pentru a determina destinatarul sau numele afișat utilizatorului, puteți utiliza (numele de ecran) sau identificatorul său numeric. De asemenea, prezent pe Twitter caracteristică interesantă, care oferă acces rapid la cele mai recente 20 de mesaje private trimise sau primite.

Desigur, ar fi interesant să aflăm cine citează postările, dar, din păcate, se face direct prin apel retweets_of_me nu reușește. În acest scop, un al doilea apel API - retweeters_of. Permiteți-mi să vă reamintesc că fiecare mesaj are un identificator unic, care trebuie să fie trecut în retweeters_of de apel. așa cum se arată în exemplul 10.

Listarea 10. Căutați utilizatori care se leagă de mesajele dumneavoastră

Ce altceva pot face cu Twitter

Cu ajutorul acestor scenarii, puteți efectua multe alte activități interesante. De exemplu, dacă doriți să știți ce subiecte sunt cele mai populare în comunitatea globală de Twitter în acest moment, apoi următorul cod va returna o listă care conține 10 dintre cele mai populare subiecte.

Twitter limitează în mod specific dimensiunea acestei liste de zece intrări (explicația pentru acest lucru poate fi găsit în secțiunea „Resurse“). Dar, de obicei, oamenii sunt interesați de subiecte legate de regiunea în care trăiesc. Twitter poate furniza aceste informații, dacă specificați WOEID-regiunea de identificare (ID în cazul în care-pe-pământ) și în cazul în care regiunea se efectuează ratingul. Deci, eu pot vedea ce subiecte sunt populare în India:

De asemenea, este ușor prin utilizarea unui script, puteți obține o listă de utilizatori care au Twitter este recomandat ca cel mai popular într-un anumit subiect.

Listarea 11. Utilizatorii popularizare pe teme de tehnologie

Vom încheia articolul nostru pentru a găsi cele mai populare cititori (în termeni de adepți Twitter) pe blog-ul celebru jucător de cricket Sachin Tendulkar (Sachin Tendulkar). Identificator de cont Sachin - sachin_rt. Puteți vedea numărul de cititori de blog-ul său apelând Twitter.user ( „sachin_rt“). FOLLOWER_COUNT și să verifice autenticitatea contului său folosind Twitter.user de apel ( „sachin_rt“). Verificat.

Acum, cu ajutorul Twitter.follower_ids apel ( „sachin_rt“), puteți vedea numărul de Sachin blog cititori. În mod implicit, veți obține o listă de utilizatori 5000, și este chiar mai mult decât avem nevoie. Pentru a afla cum să obțineți o listă completă de cititori pot citi subiectele de documentare Twitter despre lucrul cu prietenii (prieteni) și cititoare (adepți) cu ajutorul Twitter API. Iată cum se face:

Acum, selectați dintre acești utilizatori 5.000 50 are numărul maxim de cititori.

Simbol. după apel sortare indică faptul că metoda de sortare modifică transmise direct-l o matrice, și returnează unul nou. intre acolade <> Acesta este codul pe care compară. Acest exemplu demonstrează un alt avantaj Ruby: problemă a cărei soluție în C ++ ar avea nevoie de 20 de linii de cod, am fost capabili să rezolve de fapt, într-o singură linie de cod.

concluzie

Creați un script de linie de comandă pentru Twitter - este un exercițiu interesant, oferindu-vă posibilitatea că (încă) nu pot fi obținute de la Twitter „mod natural“, prin interfața cu utilizatorul. De exemplu, puteți căuta anumiți utilizatori în funcție de propriile lor criterii (de la utilizatorii locali care sunt interesați de anumite tehnologii către experți din întreaga lume), sau publica posturi direct din linia de comandă. În cele din urmă, aș dori să dea alte două sfaturi importante. Twitter foarte serios pentru a limita numărul maxim de solicitări, astfel încât rezultatele să fie păstrată în memoria cache codul. De asemenea, nu uitați pentru a căuta resurse pe API-ul REST Twitter. provocări care sunt utilizate în mod constant clienții Twitter în altă parte, apelurile API. În acest rămas bun, și vă doresc o experiență plăcută, folosind Twitter!

Obțineți produse și tehnologii

  • Aflați mai multe despre Twitter Ruby API.
  • Dacă sunteți interesat de caracteristicile Ruby introduse în această lucrare, apoi face cunoștință cu documentația completă a limbii.