bygning med twitter api: begyndt

, bygning med twitter api: begyndt,,,,, 191,,,,,,,,, 27,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss. denne post er en del af en serie kaldet bygning med twitter api. bygning med twitter api: oauth, læse og skrive, hvad du vil være, at,,,,, ved at komme i gang med twitter api kan virke lidt indviklet, men det er faktisk ganske enkelt.der er en række biblioteker til fælles sprog, der gør processen meget nemt.twitter er api - dokumentation, er også blevet forbedret betydeligt i gang.,,, i marts 2013, twitter begyndte, der kræver oauth for alle api - møder, og det har ført til forbedringer for brugere og udviklere.oauth er sikret bekræftet platform, har bidraget til at beskytte brugernes privatliv og samtidig forbedre twitter -; dette har betydet, at virksomheden at forhøje grænserne for udviklere af individuelle api -   opkald. denne serie består af tre dele.første del omfatter: en introduktion til   twitter api, opbygning af en database   skema for twitter, bygning af en php anvendelse i yii ramme for samarbejde med twitter, fuglebur, vores grundlæggende yii twitter anvendelse, der anvendes i denne forelæsning, er til rådighed via open source.hvis du vil lære mere om yii, tjek introduktion til yii ramme., anden del af denne serie vil omfatte:  , autentificering med twitter via oauth, behandling af indgående tweets på baggrund af resten api, udstationering tweets, tredje del, vil omfatte anvendelse af   tidstro   twitter streaming af api - og open source - phirehose streaming gennemførelse.mens en del to processer tweets med resten api, tredje del beskriver, hvordan til at bygge en altid i forbindelse med twitter - datasæt.dette kan være et nyt emne for mange php udviklere.,, introduktion til twitter api, for det meste i denne række tutorials vil fokusere på tre dele af twitter platform:  ,, oauth autentificering, resten api, streaming api, kan du læse den   twitter api - dokumentation.,, oauth autentificering, som af version 1.1, twitter api kræver nu, oauth autentificering, enten anvendelse kun autentificeringen eller anvendelse brugerautentificering.sidstnævnte kræver deres twitter bruger klik til twitter websted tegn i deres papirer, og så vende tilbage til dit sted.anvendelse af brugerautentificering er nødvendig for mange bruger specifikke api - opkald.  , med andre ord, når du begynder at få adgang til twitter api - på vegne af en bruger din bruger, vil blive omdirigeret til twitter til at tillade deres ansøgning.twitter vil vende tilbage tokens, som ikke ophører, indtil brugeren tilbagekalder dem.du vil bruge disse mønter til at bekræfte deres opkald på vegne af brugeren, og resten api, den mest almindelige måde at få twitter data gennem resten api - grænseflade.anvendelse af sikre młntefterligninger fremstillet via oauth, din ansøgning er anmodninger til twitter for specifikke data, f.eks. brugerens hjem tidslinje eller deres egen status, eller en anmodning om, at der efter en tweet for en bestemt bruger.,,,,, resten api skal opfylde behovene i de fleste twitter anvendelse programmører.  , streaming api,,, twitter - streaming api giver dig mulighed for at modtage beskeder og meddelelser i realtid fra twitter.det kræver imidlertid et højtydende,   persistente, altid på forbindelse mellem deres server og twitter.  , heldigvis er der et stort offentligt bibliotek ringede phirehose   af fenn bailey, som gennemfører de fleste af de   twitter - streaming api - krav.vi vil undersøge, hvordan der phirehose og tilpasse den til deres anvendelse i tredje del af denne forelæsning.,, der er tre ændringer   af twitter - streaming api:, den offentlige strøm.dette gør det muligt for din ansøgning til overvågning af offentlige data på twitter, såsom offentlige tweets, tag filtre osv.  , de bruger strøm.dette gør det muligt at spore brugerens tweet strøm i realtid.tredje del af denne forelæsning vil fokusere på de bruger strøm.  , på vandløb (kræver forudgående godkendelse fra twitter).stedet strømme giver din ansøgning til at overvåge tidstro twitter foder til et stort antal brugere.  , job af dine streaming gennemførelse er at registrere det kommende begivenheder, så hurtigt som muligt, og behandle dem på baggrund af   resten api - som nødvendige   at høste større data.twitter undertiden kalder det   indsamling af data om begivenheder "drikker meget dybere".,, anvendelse af resten api er genstand for forskellige   sats grænser   fra twitter.det er vigtigt at være en ansvarlig bruger twitter er api ved at planlægge grænser for deres aktiviteter inden for deres anvendelse og overvågning af api - sats, begrænse svar.   den streaming api - har ikke sats grænser siden data er   skubbede til din server, som det kommer.,, opbygning af en database skema for twitter api, mens twitter fra en afstand er simpelt, det er faktisk en meget dybtgående og komplekse datasæt, herunder altid voksende tidslinje, forholdet mellem brugere, nævner, meddelelser, favoritter, lister, geolokalisering, multimedier, steder, et al.  , som fremkalder, du er nødt til at beslutte, hvilke af disse data er meget vigtigt, at deres ansøgning opbevares i deres database.en minimalistisk tilgang kan tjene dig godt.twitter - adi er fleksibel nok, at du altid kan gå tilbage og udvide (eller hydrat)   data vedrørende begivenhederne i butikken.,, fuglebur er en   frie, åbne, yii baseret på anvendelse, som gennemfører twitter api - ramme for anvendelsen af denne forelæsning.hvis du ikke er bekendt med yii, læs min introduktion til yii rammer.selv om du ikke er bekendt med yii, de enkelte php kode segmenter i denne forelæsning burde være let at følge.  ,, hvis du ønsker at se en twitter api - gennemførelse i grundlæggende php, tjek adam greene er 140dev. han har gjort et stort stykke arbejde med en grundlæggende platform for twitter api - adgang.hans bog   twitter api engagement programmering   har en kreativ tage på twitter api til økologisk bygge deres indflydelse på twitter.  , en af fordelene ved fugleburet og yii ramme kode, er, at vi kan bruge yii er stillads komponent, gil, til at skabe en internet - grænseflade til grundlæggende anvendelse   i minutter noget, som du ikke kan gøre i grundlæggende folkesundhedsprogrammet.,, som yii   anvendelse, fuglebur anvendelser   activerecord   database migration for at opbygge sin database.database, migration, gøre det muligt at programmatically opbygge og udvide vores skema.   det er særlig nyttigt, hvis man gennemfører en minimalistisk forbrug af twitter api - og senere vælger at udvide det, saml.,, jeg følger dig gennem flere eksempler på, at databasen skema i yii og til at styrke dets webbaserede stilladser konstruktør, gil.,, hvis du ønsker at prøve fuglebur kode på egen hånd, kan du besøge mit sted til en komplet walk - through af monteringsvejledning.,, for det første vil vi skabe en konto, tabel opbevarer den oauth møntefterligninger og hemmeligheder fra twitter for regnskaber, vi ønsker at logge ind.disse regnskaber er knyttet til de registrerede bruger i den pågældende tabel af vores interne, user_id,.,, fra kommando linjen, vil vi fortælle yii for at skabe en ny tabel migration med henblik på twitter regnskaber:  ,. /app /beskyttede /yiic migrere skabe create_account_table,.,, vi skal fuldføre omstillingen manuelt som denne:,, <?php klasse m140911_212834_create_account_table udvider cdbmigration (beskyttede $mysqloptions = motorens = innodb charset = utf - 8 opsummerer = utf8_unicode_ci; offentlige $tableprefix; offentlige $tablename; offentlig funktion before() {$- > tableprefix = yii: app() - > getdb() - > tableprefix; hvis ($- > tableprefix < > ') $- > tablename = $- > tableprefix.'account "} offentlig funktion safeup() {$- > before(). $- > createtable ($- > tablename, system (" id "= >' pk", "user_id = >" heltal misligholdelse 0, screen_name = > kæde ikke er "," oauth_token = > kæde ikke er "," oauth_token_secret = > kæde ikke er "," last_checked = > ikrafttrædelsestidspunkt misligholdelse 0, created_at = > datetime ikke for misligholdelse 0, modified_at = > ikrafttrædelsestidspunkt misligholdelse current_timestamp om ajourføring current_timestamp "), $- > mysqloptions); $- > addforeignkey ('fk_account_user, $- > tablename, user_id, $- > tableprefix.'users", "id", "c", "c");} offentlig funktion safedown() {$- > before(). $- > dropforeignkey ('fk_account_user, $- > tablename); $- > droptable ($- > tablename)), at yii   løbe den migration, der vil bygge sql tabel, gør vi det her:  ,. /app /beskyttet/yiic vandre op.  , vil du se noget lignende:,,,,,, vi kan bruge ",   yii er webbaserede stilladser generator,   bygge vores model for flyveledere i databasen.,,,,, i min udvikling, miljø, jeg min webbrowser til  , localhost: 8888 /twitter /app /gil, type i min" kodeord (opbevaret i min twitter.ini, fil) og vælge, model generator,:,,,,,, det tager kun et sekund, og vi bør vise denne succes budskab:,,,,, model code "genererer, kan anvendes til at etablere en række forskellige metoder i forbindelse med hensyn til bord.men gil, også kan skabe grundlaget for nettet brugergrænseflade for forvaltningen af twitter regnskaber.,, klik på bootstrap generator, angives den, højde, model og gil, vil bygge på stilladser til din konto web brugergrænseflade:  ,,,,, den deraf følgende kode skaber en misligholdelse model på registeransvarlige brugergrænseflade, der ser   noget som  :,,,,, ved hjælp af yii aktive rekord, migration og "er et meget stærkt   tid saver for opbygningen af en grundlæggende web brugergrænseflade.når misligholdelse - kode er på plads, er det let at vælge, og at udvide det, næste, vi vil bygge den database, tabeller for lagring af twitter data, herunder vores, twitter_user, og   tweet tabeller.her er den, twitter_user, tabel:,, $- > createtable ($- > tablename, system ("id = > 'pk", "twitter_user_id = > bigint (20) ikke underskrevet, ikke for", "screen_name = >" - ikke for "," navn "= > snor misligholdelse for", "profile_image_url = > snor misligholdelse for", "lokalitet = > snor misligholdelse for", "url' = > snor misligholdelse for", "beskrivelse" = > "snor misligholdelse for", "followers_count = > int (10) ikke har underskrevet misligholdelse for", "friends_count = > int (10) ikke har underskrevet misligholdelse for", "statuses_count = > int (10) ikke har underskrevet misligholdelse.""time_zone = > snor misligholdelse for", "created_at = > datetime ikke for misligholdelse 0, modified_at = > ikrafttrædelsestidspunkt misligholdelse current_timestamp om ajourføring current_timestamp"), $- > mysqloptions); $- > createindex ('twitter_user_id "$- > tablename, twitter_user_id, sande), her er tweet tabel:,, $- > createtable ($- > tablename, system (" id = > 'pk "," account_id = >'integer "0", "twitter_user_id = >'bigint (20) ikke underskrevet, ikke for", "last_checked = > ikrafttrædelsestidspunkt misligholdelse 0, tweet_id = > bigint (20) ikke underskrevet ikke nul,"tweet_text = > tekst ikke er", "is_rt = > tinyint misligholdelse 0, created_at = > datetime ikke for misligholdelse 0, modified_at = > ikrafttrædelsestidspunkt misligholdelse current_timestamp om ajourføring current_timestamp"), $- > mysqloptions); $- > createindex ('tweet_id, $- > tablename, tweet_id, sande); $- > addforeignkey ('fk_tweet_account, $- > tablename, account_id, $- > tableprefix.'account "," id "," c "," c "); $- > addforeignkey ('fk_tweet_user_id, $- > tablename, twitter_user_id, $- > tableprefix.'twitter_user", "twitter_user_id", "c", "c");,, bemærker, at vi bruger en udenlandsk centrale forhold til, twitteruser, tabel."smart bygger forbindelser til os   i tweet model:,, offentlig funktion relations() (//bemærkning: de kan være nødt til at justere forholdet navn og den dermed forbundne //klasse navn for de forbindelser, der automatisk genereres under.tilbagevenden system ('hashtags = > system (self -:: has_many, "tag", "tweet_id"),'mentions = > system (self -:: has_many, nævne, tweet_id "),'account = > system (self -:: belongs_to, i betragtning," account_id "),'twitteruser = > system (self -:: belongs_to, twitteruser", "twitter_user_id"),'urls = > system (self -:: has_many, url, tweet_id))), yii aktive optegnelser   så   automatisk   forvalter tiltræder for os.   således, du kan - twitteruser egenskaber i deres spørgsmål,   med kode som f.eks. echo   $tweet - > twitteruser - > profile_image_url,.,, i almindelighed fuglebur er tænkt som en enkelt ramme, at man kan udvide på din egen.jeg har ikke store forsøg her   for at minimere lagerplads baseret på twitter størrelse definitioner eller at optimere forbindelserne i skema.jeg er primært konstrueret til personlig brug,.,, twitter før parses tweets i, hvad den kalder enheder, som hjælper filtrere metadata for dig.disse er opdelt i nævner, url - adresser, og hashtags., nævner, når tweets nævne andre brugere, f.eks. @ tommcfarlin, twitter er metadata, der beskriver de nævner.   her er skema, vi kan bruge til at oplagre dem:,, $- > createtable ($- > tablename, system ("id = > 'pk", "tweet_id = > bigint (20) ikke underskrevet, ikke for", "source_user_id = >'bigint (20) ikke underskrevet, ikke for", "target_user_id = >'bigint (20) ikke underskrevet, ikke for"), $- > mysqloptions); $- > addforeignkey ('fk_mention_tweet, $- > tablename, tweet_id, $- > tableprefix.'tweet "," tweet_id "," c "," c ");,, url - adresser, når tweets indeholde links, twitter.ovides metadata listing them. Here's the schema we'll use for storing URLs included in the tweets:,, $this->createTable($this->tableName, array( 'id' => 'pk', 'tweet_id' => 'BIGINT(20) unsigned NOT NULL', 'url'=>'string NOT NULL', ), $this->MySqlOptions); $this->addForeignKey('fk_url_tweet', $this->tableName, 'tweet_id', $this->tablePrefix.'tweet', 'tweet_id', 'CASCADE', 'CASCADE'); ,,,Hashtags,,,Whenever tweets include hashtags, e.g. #php, Twitter provides metadata describing them. Here's the schema we'll use for storing hashtags included in the tweets:,, $this->createTable($this->tableName, array( 'id' => 'pk', "tweet_id = > bigint (20) ikke underskrevet, ikke for", "tag" = >'string ikke er "), $- > mysqloptions); $- > addforeignkey ('fk_hashtag_tweet, $- > tablename, tweet_id, $- > tableprefix.'tweet", "tweet_id", "c", "c"), er disse folkevandringer bygge den primære tabeller, som vi kan lagre data fra twitter   api -., i fugleburet kode, vil de se, at der er en række andre migration samt; de fleste af disse støtte bredere anvendelse.,, bygning fugleburet ansøgning, du bliver nødt til at registrere en ansøgning med twitter for at få deres første oauth anvendelse nøgler.besøg twitter udvikler websted og klik, forvalte deres apps.klik, skabe nye apps. jeg kalder min twitter - ramme for yii:,,,,,, den callback url for anvendelse af fuglebur bør være http://yourdomain.com/twitter/callback.her er adressen, at twitter vil vende tilbage oauth anmodninger.det er også en adresse i fugleburet af vores twitter registeransvarlige for api   opkald.,, under skabelsesprocessen, du bliver nødt til at få den app tilladelser (brug, læse og skrive til fuglebur)   og gøre bemærkninger til anvendelsen oauth centrale og hemmelige:,,,,, her er hvad api - nøgler side vil fremstå som.den øverste api - nøgle og hemmelige vil være nødvendige for at oprette fuglebur i første omgang:,,,,,, når du har lagt den ansøgning, vil du se det på twitter - app menu:,,,,, når du installere den kode, du bliver nødt til at nulstille mysql database med folkevandringer.jeg gør det i to trin.,,,, jeg løber yii bruger migration.dette er en udvidelse af yii, der forvalter hovedparten af min bruger login og registrering behov:,,,. /app /beskyttede /yiic migrere... migrationpath = anvendelse. moduler. bruger. migration,,, migration vil bede dig om at skabe forudsætninger for deres primære brugerkonto for webapplikationen:,,, admin login [admin]: administration e - mail [webmaster @ f.eks. kom]: admin kodeord [admin]:,, det er den konto, som de kan bruge til at logge ind i fugleburet webapplikationen, ikke twitter akkreditiver.,, så jeg løb resten af migration:  ,. /app /beskyttede /yiic op.  , når du konfigurere fuglebur, besøge din lokalitet i din webbrowser, f.eks. http: //fuglebur. yourdomain. kom.,,,,, når du logger på, den vil spørge dig ind i din ansøgning oauth nøgler og adresse for den narde registeransvarlige, f.eks. http://yourdomain.com/twitter (kun den registeransvarlige ikke callback)   vist i ovenstående billeder:,,,,, nu, vi er klar til at lave interessante ting.  ,, konklusion, bliv hængende i anden del af denne forelæsning.anden del omfatter:  ,, oauth afsenderautentificering, forarbejdning tweets i baggrunden, udstationering på twitter, så i del   tre, vi   vil se på   benytter twitter - streaming api - og open source - phirehose streaming gennemførelse.mens en del to processer tweets med resten api, tredje del beskriver, hvordan til at bygge en altid i forbindelse med twitter datastrøm.,, jeg håber, du har fundet det nyttigt.- post - bemærkninger, korrektioner eller yderligere idéer nedenfor.du kan surfe på min anden tuts + tutorials på   min forfatter side   eller   følge mig på twitter,   @ reifman.

Final product image
Using the REST API with Twitter
Example of Yii Migration Tool
Gii - the Yii Code Generator
Using Gii to Build Our Model Code
Gii Model Code Successfully Generated
Using the Gii Bootstrap Generator for Web Scaffolding
Gii Default Controller
Create an Application for the Twitter API
Twitter API Application Permissions
Twitter API Application Keys
Manage Your Twitter Apps
The BirdCage Twitter API Application Home Page
The BirdCage Settings Screen



Previous:
Next Page: