Automatiseringsoppgaver med tjenester

Hvis du har brukt en Mac for en lengre tid, har du sikkert oppdaget tjenestemenyen på et tidspunkt, og du har sikkert lurt på deg selv "akkurat hva er den menyen for?" Vel, i denne opplæringen skal vi dechifisere mysteriet på tjenestemenyen, og vi får se hvor nyttige tjenester kan være ved å skape en av våre egne som vi kan bruke når vi trenger å bytte ut en lang, uheldig nettadresse med forkortet en.


Hva er en tjeneste?

Kort sagt, tjenester tillater appene på datamaskinen din å dele funksjonalitet blant seg selv. For eksempel gir standard Mail-appen dine andre apper med muligheten til å opprette nye e-postmeldinger eller notater basert på tekst du har valgt.


Tjenesten "Ny e-post med utvalg" levert av Mail.app

Tjenestenes skjønnhet er at de tillater apper å fokusere på det de gjør best ved å fjerne byrden av å gi løst relaterte funksjoner som andre apper allerede gir.

I tillegg til at appene dine kan dele funksjonalitet med hverandre, kan du også lage dine egne tjenester. Hvis du er en kommandolinje, så forstår du kraften som tjenestene gir, siden de i hovedsak gir deg mulighet til å lage kontekstbevisste skript for vinduene dine. Vi ser et eksempel på dette ved å skrive en egen tjeneste. Tjenesten vi skal skrive i denne opplæringen vil tillate deg å velge en nettadresse i et hvilket som helst program som tillater tekstredigering og konvertere det til en forkortet nettadresse ved hjelp av bit.lys URL-kortingstjeneste uten å forlate appen du er for øyeblikket i eller berøre et nettleservindu.


1. Få en bit.ly API-nøkkel

Før vi kan komme i gang med vår tjeneste, må vi gjøre et lite oppsett. For å kunne bruke bit.ly for å forkorte en valgt nettadresse, må vi ha utvikler tilgang til tjenesten. Så vår aller første oppgave er å registrere deg for en bit.ly-utvikler-konto og få vår API-nøkkel.

For å gjøre det, må du navigere til API-nøkkelwebsiden, og hvis du allerede har en utviklerkonto, må du bare logge på.


API-nøkkelforespørselssiden for bit.ly-utviklerkontoen

Ellers må du registrere deg for ny konto.


Den bit.ly utvikler kontoen registreringsside

Når du er ferdig med å logge på eller registrere deg, blir du tatt til en side som gir deg API-nøkkelen.


API-nøkkelsiden for bit.ly-utviklerkontoen

Når du har konfigurert utviklerkonto og du har hentet API-nøkkelen din, vil du være god til å gå, men du må fortsatt se over API-dokumentene for å få en ide om hvordan du bruker bit.ly-tjenesten programmatisk . Se nærmere på dokumentasjonen for shorten-metoden, da det er den som vi skal bruke i vår tjeneste.


2. Opprett Service Workflow

Trinn 1

Så, nå som vi har vår API-nøkkel, er vi klare til å skape vår nye tjeneste. Vi skal bruke Automator For å skape vår tjeneste, så fortsett og åpne den nå og velg Service for vår nye arbeidsflyt type.


Opprette en ny Service-arbeidsflyt i Automator

Steg 2

Undersøk Utgang erstatter valgt tekst i avkrysningsruten i delen øverst på arbeidsflytområdet. Dette sikrer at den valgte nettadressen i appen vår erstattes med den forkortede versjonen som sendes ut av vår tjeneste.


Kontroller at utgangen erstatter valgt tekstalternativ

Trinn 3

Nå som du har den nye arbeidsflytoppsettet riktig, kan du fortsette og legge til din første handling for det. Gjør et søk på Kjør Shell Script handling og dra og slipp den inn i arbeidsflytområdet.


Legge til en ny "Run Shell Script" -handling i arbeidsflyten

Trinn 4

Vi bruker Python til å skrive skriptet som vil sende den lange nettadressen til bit.ly. Som standard bruker en ny tjeneste standardskallet som skriptspråk, så du må endre det ved å velge / Usr / bin / python i Shell nedtrekksliste.


Velger Python som skriptspråk for "Run Shell Script" -aksjonen

Avhengig av din preferanse, kan det hende du finner det lettere å håndtere inngangen som om den ble sendt inn i skriptet ditt som et kommandolinjeprincip enn å lese det fra standardinngangen. For å gjøre det må du velge som argumenter alternativ fra Pass input fall ned.


Å velge å ha innspillet passert inn i vår "Run Shell Script" -handling som argumenter

Når du har alt oppsett i henhold til instruksjonene ovenfor, er din Automator arbeidsflyten bør bare like følgende:


Den endelige tilstanden til alle innstillingene for tjenesten

3. Legg til koden

Koden for denne tjenesten er relativt enkel. I hovedsak er alt vi gjør ved å lage en URL med brukernavnet, API-nøkkelen og lang URL, en forespørsel til denne nettadressen og returnere den forkortede nettadressen i svaret. Hvis du har noen erfaring med programmering, bør du ikke ha noe problem ved å følge trinnene som er oppført nedenfor. Hvis du ikke er en erfaren programmør, men interessert i å lære litt, bør følgende forklaringer være av interesse. Hvis du imidlertid bare vil opprette tjenesten og ikke bli plaget med detaljene, kan du hoppe videre til Full kildekoden delen nedenfor og bare kopiere og lime inn koden i Kjør Shell Script handling i din tjeneste.

Trinn 1

Vi må først importere urllib og urllib2 moduler. De vil bli brukt til å korrekt kode inn dataene som vi sender til bit.ly tjenesten og å sende selve forespørselen selv. Vi må også importere json pakke for å slå svaret vi kommer tilbake til en python dikt. Endelig må vi importere sys pakke for å gi oss tilgang til kommandolinjens argumenter. Denne siste modulen er nødvendig siden vi valgte å sende input som argumenter da vi først legger til Kjør Shell Script handling.

import urllib2 import urllib import json import sys 

Steg 2

I dette trinnet lager vi nyttelastet (dvs. dataene) som vi trenger for å be om den forkortede nettadressen. For å begynne, legger vi til to konstanter for å holde vårt bit.ly-utviklerkonto brukernavn og API-nøkkel som vi genererte i første del av denne opplæringen. Deretter vil vi opprette nyttelastet (dvs. dataene) for forespørselen. For å gjøre det, oppretter vi en enkel dikt med tre nøkkel / verdi par. De to første vil være brukernavnet og API-nøkkelen, og den tredje vil være nettadressen som vi ønsker å forkorte, som vi henter fra listen over kommandolinjepargumenter.

USERNAME = 'you_username' API_KEY = 'your_api_key' nyttelast = 'login': USERNAME, 'apiKey': API_KEY, 'longUrl': sys.argv [1] 

Trinn 3

En gang har vi vår nyttelast, vi må konstruere nettadressen for forespørselen. Vi må først URL-kode vår nyttelastdata fordi den vil gå inn i forespørselen for forespørselen, og deretter sammenkoble den til sluttpunktet (dvs. URL) for bit.ly shorten-metoden.

querystring = urllib.urlencode (data) url = 'https: //api-ssl.bitly.com/v3/shorten?% s'% querystring 

Trinn 4

Nå som vi har full URL, er vi klare til å be om den forkortede versjonen. Vi lager først et Request-objekt med nettadressen vi opprettet i de forrige trinnene. Deretter gjør vi forespørselen og henter dataene fra tjenesten. Dataene vil bli sendt tilbake som JSON, så vi må oversette det til en python dikt ved hjelp av json modulen.

request = urllib2.Request (url) respons = urllib2.urlopen (request) message = json.loads (response.read ()) 

Trinn 5

Når dataene er hentet og analysert i en python dikt, er det eneste trinnet igjen å trekke ut den forkortede nettadressen fra diktet og returnere det. For å returnere nettadressen, skriver vi ut det enkelt.

skriv ut beskjed ['data'] ['url'] 

Full kildekoden

Full kildekoden for tjenesten er oppført nedenfor, så du kan enkelt kopiere og lime den inn i Kjør Shell Script handling i din Automator arbeidsflyt.

import urllib import urllib2 import json import sys USERNAME = 'ditt_brukernavn' API_KEY = 'your_api_key' data = 'logg inn': USERNAME, 'apiKey': API_KEY, 'longUrl': sys.argv [1] querystring = urllib.urlencode data) url = 'https: //api-ssl.bitly.com/v3/shorten?% s'% querystring request = urllib2.Request (url) respons = urllib2.urlopen (request) message = json.loads (svar. les ()) utskriftsmelding ['data'] ['url'] 

4. Test tjenesten

For å teste vår tjeneste må vi legge til en annen handling rett før Kjør Shell Script handling. Denne nye handlingen vil bare gi en statisk URL til Kjør Shell Script handling som gjør at vi kan kontrollere at skriptet fungerer riktig. La oss legge til den nye handlingen nå.

Trinn 1

Gjør et raskt søk etter Få spesifisert tekst handling og legg det til arbeidsflyten rett over Kjør Shell Script handling.


Legg til en ny "Få spesifisert tekst" -handling for å teste tjenesten

Steg 2

Når du har lagt til den nye handlingen, velg en fin lang URL og legg til kopi og lim den inn i tekstboksen til den nye handlingen.


Legg til en lang test URL til "Få spesifisert tekst" -handling for å teste "Run Shell Script" -aksjonen

Trinn 3

Nå er du klar til å teste din tjeneste. Klikk på Løpe knappen i øverste høyre hjørne av Automator appens verktøylinje.


Kjør tjenesten med testadressen

Trinn 4

Du vet at testen er fullført ved å sjekke utgangen i Logg del av Automator nederst på høyre side av appen. I loggavsnittet bør du se en håndfull grønne merker ved siden av oppgaver som skjedde under løpet. Den siste oppgaven skal forhåpentligvis si Workflow fullført. Hvis det gjøres, fullførte testen uten å feile.


Sjekk loggen for å se når tjenesten er fullført

Trinn 5

Nå som testen er ferdig, kan du sjekke utgangen for å sikre at den virket slik du forventet det. For å gjøre det, klikk på resultater knapp nederst på venstre side av Kjør Shell Script handling. Dette vil avsløre en ny seksjon som inneholder utgangen av handlingen. Hvis du ser en pent forkortet bit.ly URL der, vet du at tjenesten fungerer som den skal.


Kontroller resultatet av testen for å sikre at "Run Shell Script" -handlingen fungerte riktig og forkortet nettadressen

5. Distribuer tjenesten

Med tester fullført og tjenesten din fungerer som den skal, er du nå klar til å distribuere tjenesten. Med andre ord er du klar til å gjøre den tilgjengelig for alle appene på maskinen din. For å gjøre det, er alt du virkelig trenger å gjøre, redd arbeidsflyten og gi den et navn, men før vi gjør det, la oss sørge for at Få spesifisert tekst handling som vi legger til i arbeidsflyten for testformål, kommer ikke i veien.

Trinn 1

Fra nå av, hvis vi prøvde å bruke vår tjeneste, ville det bare returnere den forkortede nettadressen til testadressen vi la til i vår siste seksjon. Årsaken til det er at vår Få spesifisert tekst Tiltak blir kalt før koden vår, og det ignorerer all innsats vi gir den (dvs. den valgte teksten) og sender i stedet bare nettadressen i tekstboksen inn i Kjør Shell Script handling. Du kan ganske enkelt fjerne handlingen hvis du ønsker det, ved å klikke på Få spesifisert tekst handling i arbeidsflyten og trykke på sletteknappen. Men hva om du gjør endringer i koden i fremtiden og vil teste de endringene? Vel, du kan bare legge til Få spesifisert tekst handling og en testwebadresse igjen når tiden kommer, eller du kan beholde den vi har, og bare deaktivere den for øyeblikket. For å deaktivere handlingen, velg handlingen i arbeidsflyten og Ctrl-klikk for å vise kontekstmenyen, velg deretter Deaktiver.


Deaktivering av "Få spesifisert tekst" -handling, slik at den nye tjenesten vil fungere med valgt tekst

Steg 2

Når du har deaktivert eller slettet Få spesifisert tekst handling, du kan lagre tjenesten - gi den navnet Forkort valgte webadresse-og begynn å bruke det i alle de andre programmene på systemet ditt. La oss gå videre og gi vår nye tjeneste et forsøk nå.

Trinn 3

For å teste vår nye tjeneste, skal vi bruke TextEdit Søknad siden det kommer som standard på alle Mac-maskiner. Gå videre og åpne opp TextEdit og legg til en lang URL til den. Velg deretter nettadressen og velg TextEdit> Tjenester> Forkort valgte webadresse. Det bør ta omtrent et sekund for forespørselen om å gjøre det til bit.ly tjenesten og tilbake igjen, men når den er ferdig, erstatter hun den valgte teksten med en nylig forkortet bit.ly URL.


Testing av den nye tjenesten "i naturen" ved hjelp av TextEdit.app

6. Legg til en tastaturgenvei (valgfritt)

Det siste trinnet i utviklingen i URL-avkortingstjenesten er en valgfri. I utgangspunktet er forkortelse av en nettadresse noe jeg gjør med jevne mellomrom, og for meg er det i det minste å ha en tastatursnarvei knyttet til tjenesten, noe som gjør det så mye enklere å bruke enn å navigere gjennom menyen Tjenester hver gang. Med enn i tankene, skal vi legge til en hurtigtast til vår nye tjeneste.

Trinn 1

For å legge til en hurtigtast for vår nye tjeneste, må du åpne Systemvalg og naviger til Tastatur ruten. Velg deretter Tastatursnarveier fanen etterfulgt av tjenester element i listen til venstre, og bla gjennom listen over tjenester til du finner den nye tjenesten - du burde finne den i Tekst seksjon.


Legge til en hurtigtast for den nye tjenesten

Steg 2

Nå må vi bare legge til den faktiske nøkkelkombinasjonen som vi skal bruke for å påberope seg tjenesten vår. For å gjøre det, klikk på legg til snarvei knappen og trykk på den tastekombinasjonen du foretrekker. Jeg har valgt kombinasjonen Kontroll-Tilvalg-Kommando-s for meg, men du kan velge alt du liker, men du bør prøve å unngå tastekombinasjoner som allerede er i bruk.


Hva nå?

I denne opplæringen har vi tatt en grundig titt på tjenester, en veldig kraftig funksjon i OS X. Vi har lært hva tjenester er og hvordan de skal opprettes, og i løpet av denne opplæringen har vi opprettet en av vår egen som vi kan bruke til å forkorte lange nettadresser ved hjelp av bit.ly. Det eneste spørsmålet igjen er "hva neste?"

Har du noen ideer til nyhetstjenester du vil opprette? Har du opprettet noen tidligere? Del dine ideer og kode i kommentarene nedenfor!