bygning med twitter api: bruger rigtige

, bygning med twitter api: ved hjælp af tidstro strømme,,,,, 119,,,,,,,, 13,,,,,,, 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 postingbuilding med twitter api: tweet storme,,, hvad du vil lave,,, mens twitter resten api er egnet til mange ansøgninger, hvis du vil have umiddelbare opdateringer og adgang til en bredere vifte af anmeldelser, twitter - streaming api - er afgørende.for eksempel er det kun streaming api vil fortælle dig, hvornår en anden bruger favoritter, en af dine beskeder.,,, ved hjælp af streaming api - kræver en vedvarende, holde liv i forbindelse mellem deres webserver og twitter.denne form for gennemførelsen kan være ukendt for mange php udviklere.så snart tweets kom ind, twitter, meddeler deres server i realtid, som gør det muligt at opbevare dem ind i jeres database uden forsinkelse af stemmeafgivningen resten api - grænseflade.anvendelse af streaming api er heller ikke underlagt twitter er api -   sats grænser.,, her er en visualiseringen af  , hvordan det fungerer.,,,,, er der 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, et al.  , de bruger strøm.dette gør det muligt at spore brugerens tweet strøm i realtid.tredje del af denne serie vil fokusere på de bruger strøm.  , stedet strømme.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.   område kræver forudgående godkendelse fra twitter   vandløb, der sandsynligvis vil   forbeholdt de større virksomheder og udviklere. heldigvis er der fri, open source - bibliotek ringede phirehose, som gennemfører de fleste af streaming api - krav.denne lektion vil beskrive, hvordan vi kan integrere phirehose i vores open source - fuglebur anvendelse.,, phirehose bibliotek, phirehose er en fantastisk open source - folkesundhedsprogrammet gennemførelse af twitter - stream api - krav, skrevet af fenn bailey.som han beskriver det, phirehose skal:,, give en simpel grænseflade til twitter - streaming api til folkesundhedsprogrammet ansøgninger, i overensstemmelse med streaming api - henstillinger om behandling af fejl, sammenkobling,   osv., fremme velopdragne streaming api - kunder, uafhængigt af folkesundhedsprogrammet forlængelse (dvs. fælles hukommelse, pcntl osv.), har jeg fandt biblioteket at fungere helt fejlfrit.der er mere phirehose dokumentation. det er meningen, at opretholde forbindelsen med twitter og reagere på twitter er data feed under drift på ubestemt tid uden afbrydelse.det er ikke meningen, at udføre nærmere tweet forarbejdning til fremstilling af læsket og data, som vi har beskrevet i del 2 i denne serie.dette kan ske særskilt.,, at phirehose på ubestemt tid, normalt, du kan ikke køre et typisk webbaserede cron opgave som en ubegrænset holde liv i drift.det er bedre at skabe en kommando linjen   dæmon.,, en af de stærke elementer yii tilbyder, er evnen til at løbe konsol baseret på ansøgninger fra kommando linjen.det vil give os mulighed for at køre en holde liv i kommandolinjen ansøgning, der udnytter hele fuglebur folkesundhedsprogrammet og mysql ramme, som vi har   bygget.,,, at opbygge et yii konsol kommando, i /app /, fortegnelse, uden for nettet tilgængelige rod, vi giver, stream.php, fil, der styrer vores phirehose streaming konsol kommando:,, <?php defineret ('yii_debug), eller at definere ('yii_debug, sande); $yii = dirname (__file__). "/.. /ramme /yii. folkesundhedsprogrammet". $ud = dirname (__file__). /beskyttede /ud /main. php; require_once ($yii); yii: createconsoleapplication ($ud) - > run();,, vi vil bygge den faktiske ledelse fil, streamcommand. php, i /app /beskyttede /kommandoer, fortegnelse:,, <?php klasse streamcommand udvider cconsolecommand (//test med folkesundhedsprogrammet. /app /stream.php stream offentlige funktion løb ($args) (//få twitter brugerkonto nøgler $resultat = højde: model() - > findbypk (1); $c = nye forbruger ($resultat ['oauth_token "$resultat ['oauth_token_secret" phirehose: method_user); //belastning twitter app nøgler $app = usersetting: model() - > loadprimarysettings(). $c - > consumerkey = $app ['twitter_key '] $c - > consumersecret = $app ['twitter_secret. $c - >; consume();}}, det vil iværksætte phirehose proces, forbruger, ved hjælp af vores twitter anvendelse og brugernes nøgler.,,, note: i forbindelse med fugleburet streaming eksempel, vi går ud fra, at derder er kun en twitter er registreret, og hardcode lastning af papirer, f.eks. account_id = 1.,,, at phirehose, at integrere phirehose i fugleburet, jeg flyttede, oauthphirehose.php, og userstreamphirehose.php i, /app /beskyttede /komponenter, fortegnelse.i min main.php, konfiguration fil, tilføjede jeg, phirehose, at listen over ladt komponenter:,, preload = > system (log "," bootstrap "," mailgun "," phirehose "," avancerede "),,, så jeg skabte en database migration for at skabe en tabel til   butik rådata fra twitter - stream:,, klasse m140919_193106_create_stream_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.'stream"} offentligefunktion safeup() {$- > before(). $- > createtable ($- > tablename, system ("id = > 'pk", "tweet_id = > bigint (20) ikke underskrevet, ikke for", "code = >" tekst ugyldig, is_processed = > 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)}, er jeg også skabt en ny model, consumer.php, som udvider, oauthphirehose, med den nødvendige, enqueuestatus metode.  , ønsker vi at mindske mængden af forarbejdning af tidstro reaktion skal udføre.i bund og grund, vi ønsker blot at registrere de oplysninger, der er modtaget fra twitter til vores database, og intet andet.vi kan gøre andre forarbejdning i vores egen baggrund opgaver uden at phirehose er streaming forbindelse.   min funktion kræver bare fløjt data fra indgående strøm og gemmer det i åen tabel:,, <?php klasse forbruger udvider oauthphirehose (//denne funktion kaldes automatisk af phirehose klasse //, når en ny tweet modtages med json data i $status offentlig funktion enqueuestatus ($status) ($stream_item = json_decode ($status); hvis (!(isset ($stream_item - > id_str)) (tilbage;} $s = nye stream. $r - > tweet_id = $stream_item - > id_str. $r - > kode = base64_encode (sandt ($stream_item) $r - > is_processed = 0 $r - > created_at = nye cdbexpression ('now()) $r - > modified_at = nye cdbexpression (' now()) $r - > save(); var_dump ($stream_item)).>,, vi vil basere sig på baggrund af de opgaver, daemoncontroller, at behandle de oplysninger, i bircdcage tweet model.dette er beskrevet nedenfor. phirehose, aktivering, kan du prøve phirehose ved hjælp af folkesundhedsprogrammet konsol kommando:,,, folkesundhedsprogrammet. /app /stream.php strøm,,,, twitter vil sende en strøm af med information til brugeren, efterfulgt af tidstro data som den kommer.,, at aktivere phirehose som holde sig i live, altid til kommandoen, vi bruger nohup kommando, f.eks. ingen tara, og omlægge produktionen til dev /null:,,, nohup folkesundhedsprogrammet. /app /stream.php stream > /dev /for 2 > & 1 &,,, ubuntu vil reagere med en identifikation af processen for fremtidige arbejde, overvågning og afslutning:,,, [1] 9768,,, hvis du ønsker at se, at processen er i gang, scan opgave liste til jobbet id:,,, ps - e -



Previous:
Next Page: