Automating Oppgaver Med Services
Hvis du har brukt en Mac i lengre tid, har du sikkert støtt på tjenestemenyen på et tidspunkt, og du har sikkert lurt på til deg selv "bare hva er at menyen for? " Vel, i denne opplæringen, skal vi tyde mysteriet av tjenestemenyen, og vi får se hvor nyttig tjenester kan være med å skape en av vår egen at vi vil være i stand til å bruke når vi trenger å erstatte en lang, hengslete URL med en forkortet en.
Hva er en tjeneste?
kort sagt, tjenester tillater appene på datamaskinen til å dele funksjonalitet blant dem selv. For eksempel gir standard post-applikasjonen de andre appene dine med evne til å skape nye e-postmeldinger eller notater basert på teksten du nå har valgt.
"Ny e-post med Selection" tjeneste levert av Mail.app
det fine med tjenestene er at de tillater apps til å fokusere på det de gjør best ved å fjerne byrden av å tilby løst relaterte funksjoner som andre apps allerede tilbyr.
i tillegg til at programmene dine til å dele funksjonalitet med hverandre du kan også lage dine egne tjenester. Hvis du er en kommandolinje elendige, så du forstår kraften som tjenester gir, siden de egentlig tillate deg et middel for å skape kontekstavhengig skript for windowed apps. Vi får se et eksempel på dette ved å skrive en tjeneste av vår egen. Tjenesten vi skal skrive i denne opplæringen vil tillate deg å velge en nettadresse i et program som gjør at tekstredigering, og konvertere den til en forkortet URL gjennom bruk av bit.ly URL forkortelse tjenesten uten å forlate appen du er for tiden i eller berøre et nettleservindu.
1. Få en bit.ly API Key
Før vi kan komme i gang med tjenesten vår, må vi gjøre litt oppsett. For å kunne bruke bit.ly å forkorte en valgt URL, må vi ha utvikleren tilgang til tjenesten. Så vil vår aller første oppgave være å registrere seg for en bit.ly utviklerkonto og få våre API-nøkkel.
For å gjøre det, må du navigere til API-nøkkel webside, og hvis du allerede har en utvikler-konto, kan du logge deg inn.
bit.ly utviklerkonto API-nøkkel forespørsel side
Ellers må du registrere deg for ny konto.
bit .ly utviklerkonto melde seg side
Når du er ferdig enten logge på eller registrere deg, vil du bli tatt til en side som vil gi deg din API-nøkkel.
bit.ly utviklerkonto API-nøkkel side
Når du har fått utviklerkontoen oppsettet og du har hentet din API-nøkkel, vil du være godt å gå, men du fortsatt trenger å se over API docs for å få en idé om hvordan du bruker den bit.ly tjenesten programmatisk. Nærmere bestemt, ta en titt på dokumentasjonen for forkorte metode som det er den som vi skal bruke i vår tjeneste.
2. Lag Tjenesten arbeidsflyt
Trinn 1
Så nå som vi har vår API-nøkkel, er vi klare til å lage vår nye tjeneste. Vi skal bruke Automator Sjekk Output erstatter valgt tekst boksen i seksjonen oppå arbeidsflyten området. Dette vil sikre at den valgte URL i vår app er erstattet med den forkortede versjonen slippes ut av vår tjeneste. Nå som du har din nye arbeidsflyten opp riktig, kan du gå videre og legge din første handling til det. Gjør et søk på Run Shell Script handling og dra og slipp den inn i arbeidsflyten området. Vi er ll være å bruke Python til å skrive manuset som vil sende den lange URL til bit.ly. Som standard en ny tjeneste bruker din standard shell som sin skriptspråk, så må du endre den ved å velge /usr /bin /python i nedtrekkslisten Shell. Avhengig av dine preferanser, kan du finne det lettere å forholde seg til innspill som om det var gått inn i skriptet som en kommandolinje argument i stedet for å lese den inn fra standard input. For å gjøre dette, må du velge den som argumenter alternativ fra Pass innspill nedtrekksmenyen. Når du har alt oppsett i henhold til instruksjonene ovenfor, bør Automator Koden for denne tjenesten er relativt enkel. I hovedsak er alt vi gjør konstruere en URL med vår brukernavn, API-nøkkel, og lange URL, noe som gjør en forespørsel til at nettadressen, og returnere den forkortede URL i svaret. Hvis du har noen erfaring med programmering, bør du ha noe problem å følge trinnene nedenfor. Hvis du ikke er en erfaren programmerer, men er interessert i å lære litt, så kan følgende forklaringer bør være av interesse. Hvis derimot, du bare ønsker å opprette tjenesten og ikke bli plaget med detaljene, kan du gå videre til full kildekode Vi må først importere urllib og urllib2 moduler. De vil bli brukt til riktig kode dataene som vi sender til bit.ly tjeneste og sende den faktiske forespørselen selv. Vi trenger også å importere JSON-pakken for å slå den responsen vi komme tilbake til en python dict. Til slutt må vi importere sys pakken å gi oss tilgang til kommandolinjeargumentene. Dette siste modulen er nødvendig siden vi valgte å passere innspill som argumenter når vi først lagt til Run Shell Script I denne trinn vil vi skape nyttelasten (dvs. dataene) som vi trenger å be om den forkortede URL. Til å begynne, vil vi legge to konstanter å holde vår bit.ly utviklerkonto brukernavn og API-nøkkel som vi generert i den første delen av denne opplæringen. Deretter vil vi skape nyttelasten (dvs. data) for forespørselen. For å gjøre det, skaper vi en enkel dict med tre nøkkel /verdi-par. De to første vil være vår brukernavn og API-nøkkel og den tredje blir nettadressen som vi ønsker å forkorte, som vi skal hente fra listen over kommandolinjeargumentene. Når har vi vår nyttelast, vi trenger konstruere URL for forespørselen. Vi må først URL kode vår nyttelast data siden det vil være å gå inn i spørrestrengen av anmodningen, og deretter sette sammen det på endepunktet (dvs. URL) for bit.ly forkorte metoden. nå som vi har full URL, vi er 'http //api-ssl.bitly.com/v3/shorten% s? klar til å be om forkortet versjon. Vi skaper først en Request-objektet med nettadressen vi opprettet i forrige trinn. Da vi gjøre forespørselen og hente data fra tjenesten. Dataene vil bli sendt tilbake som JSON, så vi må oversette det til en python dict bruke json modulen. Når dataene er hentet og analysert i en python dict, er den eneste skritt til venstre for å trekke den forkortede URL fra dict og returnere det. For å gå tilbake URL, vi bare skrive det. full kildekode for tjenesten er oppført nedenfor, så du kan ganske enkelt kopiere og lime den inn i Run Shell Script For å teste vår tjeneste vi må legge til en annen handling rett før Run Shell Script Gjør et raskt søk for Get spesifiserte teksten handling og legge den til arbeidsflyten rett ovenfor Run Shell Script Når du har den nye handlingen lagt til, plukke en fin lang nettadresse og legge kopiere og lime den inn i den nye handlingen er tekstboksen. nå din klar til å teste tjenesten. Klikk på Kjør-knappen i øvre høyre hjørne av Automator Du vet det testen er fullført ved å sjekke resultatet i loggen delen av Automator Nå som testen er ferdig med å kjøre, kan du sjekke utgang for å sørge for at det fungerte slik du forventet at det skulle. For å gjøre det, klikker du på knappen Resultater nederst, venstre side av Run Shell Script Med testene gjennomført og din tjeneste fungerer som den skal, er du nå klar til å distribuere tjenesten. Med andre ord, er du klar til å gjøre den tilgjengelig for alle programmer på din maskin. For å gjøre det, er alt du egentlig trenger å gjøre lagre arbeidsflyten og gi den et navn, men før vi gjør det, la oss sørge for at Hent angitte teksten Per akkurat nå, hvis vi prøvde å bruke vår tjeneste det vil returnere bare den forkortede URL av test URL vi lagt i vår siste avsnitt. Grunnen til det er at vår Kom angitte teksten Når du har deaktivert eller slettet Hent angitte teksten For å teste vår nye tjeneste, vi kommer til å bruke TextEdit-programmet siden det er standard på alle Mac-maskiner. Gå videre og åpne opp TextEdit og legge en lang URL til det. Deretter velger du URL og velg TextEdit > Tjenester > Forkorte valgte URL Det siste trinnet i utviklingen i vår URL forkortelse tjenesten er en valgfri en. I utgangspunktet forkorte en URL er noe jeg gjør på en svært regelmessig, og for meg i det minste ha en tastatursnarvei tilknyttet tjenesten gjør det så mye enklere å bruke enn å navigere gjennom menyen Tjenester hver gang. Med enn i tankene, kommer vi til å legge til en hurtigtast til vår nye tjeneste. For å legge til en tastatursnarvei for vår nye tjeneste, må du åpne < em> Systemvalg nå trenger vi bare å legge selve nøkkelen kombinasjon som vi skal bruke til å påkalle vår tjeneste. For å gjøre det, klikk på add snarveiknappen og trykk tastekombinasjonen som du foretrekker. Jeg har valgt kombinasjonen Kontroll-Tilvalg-Kommando-Koreas i denne opplæringen vi har tatt en grundig titt på tjenester, en svært kraftig funksjon i OS X. Vi har lært hvilke tjenester er og hvordan du oppretter dem, og i løpet av kurset av denne opplæringen, har vi skapt en av våre egne som vi kan bruke til å forkorte lange nettadresser ved hjelp bit.ly. Det eneste spørsmålet igjen er "hva nå?" Har du noen ideer til nyhetstjenester som du ønsker å skape? Har du laget noe i det siste? Del dine ideer og kode i kommentarfeltet nedenfor!
å lage vår service, så gå videre og åpne den opp nå og velge Service for vår nye arbeidsflyten type.
Opprette en ny tjeneste arbeidsflyt i Automator
Trinn 2
Sjekk Output erstatter valgt tekst alternativet
Trinn 3
Legge til en ny "Run Shell Script" handling til arbeidsflyt
Trinn 4
Velge Python som skriptspråk for "Run Shell script" action
Velger å ha inngangs gått inn i vår "Run Shell Script" action som argumenter
arbeidsflyt liker bare følgende:
den endelige tilstand av alle innstillinger for tjenesten
3. Legg anbefalingen
nedenfor og bare kopiere og lime inn koden i Run Shell script
handling i tjenesten.
Trinn 1
handling
. Import urllib2import urllibimport jsonimport sys
Trinn 2
Username = 'you_username'API_KEY =' your_api_key'payload = { 'login': BRUKERNAVN, 'apikey': API_KEY, 'longUrl': sys.argv [1]}
Trinn 3
Spørrestrengen = urllib. urlencode (data) url =:% spørrestrengen
Trinn 4
Forespørsel = urllib2.Request (url) respons = urllib2.urlopen beskjed (forespørsel) = json.loads (response.read ())
trinn 5
Print melding [ 'data'] [ 'url']
full kildekode
handling i Automator
arbeidsflyt.
import urllibimport urllib2import jsonimport sysUSERNAME = 'your_username'API_KEY =' your_api_key'data = { 'login': BRUKERNAVN, 'apikey': API_KEY, 'longUrl': sys.argv [1]} spørrestrengen = urllib.urlencode (data) url = 'http: //api-ssl.bitly.com/v3/shorten? % s '% querystringrequest = urllib2.Request (url) respons = urllib2.urlopen (forespørsel) message = json.loads (response.read ()) print melding [' data '] [' url ']
4. Test Tjenesten
handling. Denne nye tiltak vil bare mate en statisk nettadresse i Run Shell Script
handling slik at vi kan bekrefte at skriptet fungerer riktig. La oss legge til at nye tiltak nå.
Trinn 1
handling .
Legg til en ny "Get angitte teksten" handling for å teste tjenesten
Trinn 2
Legg en lang test URL til "Get angitte teksten" handling for å teste "Run Shell Script" action
Trinn 3
app verktøylinje.
Kjøre tjenesten med testen URL
Trinn 4
nederst, høyre side av programmet. I loggen delen, bør du se en håndfull grønne haker ved siden av oppgaver som skjedde under kjøringen. Den siste av de oppgavene bør forhåpentligvis si arbeidsflyt fullført. Hvis den gjør det, fullførte testen uten å mislykkes.
Sjekk loggen for å se når tjenesten er ferdig utfører
Trinn 5
handling. Dette vil avdekke en ny seksjon som inneholder utgangen av handlingen. Hvis du ser et pent forkortet bit.ly URL der, vet du tjenesten fungerer som den skal.
Sjekk resultatet av testen for å sørge for at "Run Shell Script" action jobbet riktig og forkortet URL
5. Distribuer Tjenesten
handling som vi har lagt til arbeidsflyten for testformål ikke kommer i veien.
Trinn 1
handling blir kalt før vår kode, og så er det fullstendig ignorerer alle innspill vi gi den (dvs. merket tekst), og i stedet bare sende URL i sin tekstboks inn i Run Shell Script
handling. Du kan ganske enkelt fjerne handlingen hvis du ønsker det, ved å klikke på Hent angitte teksten
handling i arbeidsflyten og treffer slett-knappen. Men, hva hvis du gjør endringer i koden i fremtiden, og ønsker å teste disse endringene? Vel, du kan bare legge til Hent spesifiserte teksten
handling og en test URL igjen når den tid kommer, eller du kan holde den vi i dag har, og bare deaktivere den for tiden. Hvis du vil deaktivere handling ved å velge handlingen i arbeidsflyten og Kontroll-klikk
den for å vise kontekstmenyen, og velg Deaktiver.
Deaktivering av "Get angitte teksten" action så den nye tjenesten vil arbeide med utvalgte tekst
Trinn 2
handling, kan du lagre service gi den navnet forkorte valgte URL-og begynne å bruke den i alle andre programmer på systemet ditt. La oss gå videre og gi vår nye tjeneste en prøve nå.
Trinn 3
. Det tar omkring et sekund for forespørsel om å gjøre det til bit.ly tjenesten og tilbake igjen, men når den er ferdig, du hun den markerte teksten erstattet med en nylig forkortet bit.ly URL.
Teste nye tjenesten "i naturen" ved hjelp TextEdit.app
6. Legg en hurtigtast (valgfritt)
Trinn 1
og naviger til Tastatur
ruten. Deretter velger du Hurtigtaster
fanen etterfulgt av Tjenester
element i listen til venstre, og bla gjennom listen over tjenester til du finner den nye tjenesten-du bør finne det innenfor Tekst
delen.
legge til en tastatursnarvei for den nye tjenesten
Trinn 2
for meg, men du kan velge noe du liker, men du bør prøve å unngå tastekombinasjoner allerede i bruk.
Hva nå?