I forrige uke lanserte Twitter @Anywhere, som med bare noen få tilføyede linjer i koden din, kan bringe alle Twitters plattformfunksjoner til nettstedet ditt. @Anywhere kan tillate alt, alt fra å konvertere et enkelt @brukernavn til en klikkbar lenke, for å til og med skape nye tweets direkte fra ditt personlige nettsted. Jeg vil vise deg nøyaktig hvordan du gjør det i denne opplæringen!
For å begynne å bruke @Anywhere må du ha en API-nøkkel. Hva? Har du ikke det? Ikke noe problem. Bare gå her og registrer en ny søknad (ikke registrer det herfra).
Og til slutt, sett standard tilgangstype til Les og skriv. Dette er veldig viktig!
Nå blir du omdirigert til siden for programinnstillinger. Kopier forbrukernøkkelen (API-nøkkel), og la oss begynne å bruke @Anywhere.
Åpne din nye HTML-fil, og, inne i tag, inkluderer:
Koden din skal se ut som:
@Hvor som helst ...
Erstatte apikey
med programmets API-nøkkel du fikk i forrige trinn. Parameteren v = 1
er versjonen. Kanskje i fremtiden vil Twitter legge til nye funksjoner og kanskje nye syntakser. For å forhindre at den eksisterende @Anywhere-koden brytes, vil de beholde den gamle koden hvis den er angitt. Versjon 1 støtter alle de store nettleserne, inkludert IE6.
Etter at du har tatt med denne JavaScript-filen, kan vi få tilgang til twttr
objekt, som vil påkalle hvor som helst()
Funger med en parameter når @Anywhere er klar:
twttr.anywhere (funksjon (twitter) // Handlinger når @Anywhere er klar);
Parameteren (i dette tilfellet twitter
) er objektet vi skal bruke, ligner på jQuery's $
.
Deretter må vi lage en HTML-base. Kopier og lim inn følgende kode, og legg den inn i "body" -taggen.
Mitt blogginnlegg
Dette er en test bloggingstest @Anywhere av @twitter.
Hvis du likte denne opplæringen, vennligst følg meg og hold kontakten med @ NETTUTS for mer awesomeness.
kommentarer
- @corcholat sier:
En slik god opplæring!
- @faelazo sier:
Du bør også følge @smashingmag
La oss nå grave inn.
@Anywhere lar oss konvertere @mentions til koblinger. Denne funksjonaliteten kalles linkifyUsers
, og er ganske rett frem: det setter HTML-elementet du ønsker å konvertere til en kobling.
Siden vi vil at alle dokumentets @mentions skal konverteres til lenker, kaller vi bare linkifyUsers ()
funksjon i kroppselementet:
twttr.anywhere (funksjon (twitter) twitter ("body"). linkifyUsers (););
Som nevnt tidligere, er "twitter" -parameteren, inne i tilbakeringingsfunksjonen, mye som jQuery's "$" alias; f vi ønsker å konvertere @mentions til koblinger, men bare de i en bestemt seksjon, kan vi bruke en CSS velger, som vist nedenfor.
twttr.anywhere (funksjon (twitter) twitter (". post"). linkifyUsers (););
linkifyUsers ()
aksepterer et objekt som en parameter, med to egenskaper: klassenavn
og suksess
. Med klassenavn
, Du kan spesifisere en klasse som skal brukes når @mentions er funnet; så, for eksempel, kan du legge til en usemantisk "rød" klasse og spesifisere i CSS:
.rød farge: # f00;
Her er koden.
twttr.anywhere (funksjon (twitter) twitter ("body"). linkifyUsers (className: 'red';;);
hovercards () konverterer @mentions til koblinger, men laster også et lite popup-verktøytips på mouseover. Her er et grunnleggende eksempel på bruken.
twttr.anywhere (funksjon (twitter) twitter.hovercards (););
derimot, -opplysningsfelt ()
er fleksibel nok til å inkludere visse elementer selv om de ikke har en @mention i dem. I HTML kobler jeg "følg meg" til http://twitter.com/faelazo
; men @ hvor som helst er smart nok til å konvertere denne lenken til et hovercard. Ved å legge til en klasse med "hovercard" til ankermerket, vil Twitter takle resten!
twttr.anywhere (funksjon (twitter) // Finn @mentions og linkify som vanlig twitter ("body"). hovercards (); // La oss finne elementene som har en hovercard class twitter ("hovercard"). (brukernavn: funksjon (node) var twitter_regexp = /twitter\.com\/([a-z0-9_]*)\/?(.*)?/gi; hvis (node.href.match (twitter_regexp) && (twitter_match = twitter_regexp.exec (node.href))) return twitter_match [1]; return ";;;);
De brukernavn
parameteren tar en funksjon med en parameter som blir objektet som er funnet (i dette tilfellet node
). Her er hva som skjer inne i funksjonen, linje for linje.
var twitter_regexp = /twitter\.com\/([a-z0-9_]*)/gi;
Dette er et vanlig uttrykk. Det vil samsvare med en twitter.com/
streng med alfanumeriske verdier og et understreke.
hvis (node.href.match (twitter_regexp) && (twitter_match = twitter_regexp.exec (node.href)))
Hvis regexp matcher href-egenskapen fra nodelementet, må du sette variabelen twitter_match for å fange verdiene i en matrise.
returner twitter_match [1];
Det vil returnere kampen som ble funnet.
Vi legger til en "retur" bare hvis elementet har en klasse, men refererer ikke til twitter.com
; så det blir ingen kamp. Hvis den returnerer falsk
eller NULL
, skriptet kaster en feil. Med en tom streng viser den et hovercard, men ingen bruker funnet.
Nå, hvis dette er litt for komplisert, kan du alltid forenkle prosessen, og legge til brukernavnet som tittelattributtet til ankermerket.
Følg meg
Og bare returner node
's tittel
Egenskap. Mye enklere, rett?
twitter ("hovercard"). hovercards (brukernavn: funksjon (node) return node.title;);
"hovercards" kan brukes på ethvert element (selv en div), så lenge det angir et brukernavn.
twitter ("# main"). hovercards (brukernavn: funksjon () retur 'therrorcom';);
followButton ()
vil legge til en knapp for å følge brukernavnsparameteren i elementet som er angitt tidligere.
Følgende kode vil legge til en knapp for å følge Nettuts + i #hoved
div.
twttr.anywhere (funksjon (twitter) twitter ("# main"). followButton ("netts"););
followButton ()
forventer en parameter: brukernavnet å følge. Enkelt nok, eh?
tweetBox ()
vil legge til en boks der brukerne kan skrive inn sine kommentarer og tweet dem via nettstedet ditt.tweetBox
kan motta et objekt som parameter, med følgende egenskaper:
disk
(boolean, standard sant)høyde
(heltall, standard 65)bredde
(heltall, standard 515)merkelapp
(streng, standard "Hva skjer?")defaultContent
(streng, standard ingen)onTweet
(funksjon)En standard tweetBox
kan kalles etter elementet med kommentarklassen med følgende utdrag.
twttr.anywhere (funksjon (twitter) twitter (". kommentarer"). tweetBox (););
Så hvis du vil ha en egendefinert etikett, innhold og tilbakering når tweet er sendt, bruk denne koden.
tweetBox (label: 'Hva synes du om denne artikkelen?', defaultContent: '#nettuts', onTweet: funksjon (vanlig, html) // Handlinger når tweet sendes) ;
onTweet
kan være nyttig hvis du planlegger å erstatte standardkommentarområdet med CMS du bruker. Du vil fortsatt ha behov for en database og et bord for å vise kommentarene, ikke sant? Så du kan hack CMS litt og foreta en AJAX-forespørsel med onTweet
arrangement for å sette tweetet inn i databasen.
Som du sikkert har sett, krever de to siste metodene bekreftelse for å gi tillatelse til søknaden. @Anywhere har en metode for å sjekke om brukeren er logget inn med programmet (ikke på twitter). Du kan bruke betingelsene for å vise visse elementer eller ikke.
Denne brikken legger til tilkoblingsknappen i elementet med en kommentarklasse.
twttr.anywhere (funksjon (twitter) twitter (". kommentarer"). connectButton (););
Hvis du trenger en knapp med en annen størrelse, kan du passere et objekt bokstavelig med egenskapen størrelse og verdi små, mellomstore, store eller xlarge. Merk at "medium" er standardverdien.
twttr.anywhere (funksjon (twitter) twitter (". kommentarer"). connectButton (size: 'large';;);
Twitter-objektet inneholder noen ekstra godbiter; en er nåværende bruker
, som er et objekt den andre er er sammenkoblet()
, som er en funksjon som returnerer en boolsk. Herfra kan vi lage noen betingede utsagn.
twttr.anywhere (funksjon (twitter) if (twitter.isConnected ()) alert ('Velkommen, du er tilkoblet'); else twitter (". kommentarer"). connectButton (););
Hvis er sammenkoblet()
avkastning ekte
, Vi kan vise noen brukerinformasjon, for eksempel brukernavnet (skjermnavn), profilbilde (profile_image_url), tilhenger eller følgende. Her er en liste over informasjonen som programmet kan få tilgang til. La oss se nåværende bruker
objekt i den endelige runden.
Jeg vil endre div med kommentarklassen.
kommentarer
- @corcholat sier:
En slik god opplæring!
- @faelazo sier:
Du bør også følge @smashingmag
Legg til en kommentar
La oss nå inkludere jQuery for å gjøre ting litt enklere. Sett inn, mellom og
, følgende kode:
Nå har vi plass til å legge til kommentarer. Først, la oss bruke er sammenkoblet()
betinget av å vise en knapp hvis brukeren ikke er logget på vår søknad; denne knappen vil bli lagt til elementet med en "Legg til"
klasse.
hvis (twitter.isConnected ()) twitter (". kommentarer"). connectButton ();
La oss nå bruke Twitters nåværende brukerobjekt. Dette objektet kan hente informasjon med data () -metoden. Så følgende utdrag vil hente brukerens skjermnavn.
twitter.currentUser.data ( 'SCREEN_NAME');
@Anywhere lar oss spesifisere tilbakeringingsfunksjoner for connectButton
trekk. Som et argument aksepterer det et objekt med to egenskaper: authComplete
og Logg ut
; begge er funksjoner, så når Logg ut
Påberopes, vi kunne oppdatere siden. Det samme gjelder for authComplete. La oss erstatte connectButton ()
linje med denne koden:
twitter (". kommentarer> .add"). connectButton (authComplete: funksjon (bruker) location.reload ();, signOut: function () location.reload (););
Dette er ganske straightfoward: vi sender et objekt som argumentet, og sett deretter begge Logg ut
og authComplete
Fungerer for å laste siden på nytt. Legg merke til at jeg har tapt ellers
klausul for er sammenkoblet()
betinget for å sette Logg ut
begivenhet.
Deretter la vi legge til en tweetBox
inne i betinget.
hvis (twitter.isConnected ()) $ (". kommentarer> .add> .author"). html (' '+ twitter.currentUser.data (' screen_name ') +' | Logg ut'); tweetBox (label: 'Hva synes du om denne artikkelen?', defaultContent: '#nettuts');
Hvis brukeren er logget inn, bør en følgeknapp være der. Igjen, inne i betinget:
twitter (". kommentarer> .add"). followButton ("nett");
Her er det hele betinget, avrunding av alle @Anywhere-funksjonene.
hvis (twitter.isConnected ()) $ (". kommentarer> .add> .author"). html (' '+ twitter.currentUser.data (' screen_name ') +' | Logg ut'); tweetBox (label: 'Hva synes du om denne artikkelen?', defaultContent: '#nettuts'); twitter (". kommentarer> .add"). followButton ("nett");
@Anywhere er åpenbart Twitters svar på Facebook Connect. De håper å bringe denne plattformen til så mange nettsteder på nettet som mulig; og mens tjenesten fortsatt er ung, og dokumentasjonen kan definitivt forbedres, er det definitivt lovende! Vennligst vis oss hva du har gjort med @Anywhere på dine egne nettsteder!