Automatizzare le attività con i servizi

Se hai utilizzato un Mac per un certo periodo di tempo, ad un certo punto hai sicuramente incontrato il menu dei servizi e probabilmente ti sei chiesto "per cosa è questo menu?" Bene, in questo tutorial, decificheremo il mistero del menu dei servizi e vedremo quanto possono essere utili i servizi creando uno dei nostri strumenti che potremo utilizzare ogni volta che sarà necessario sostituire un URL lungo e sgraziato con uno abbreviato.


Cos'è un servizio?

In breve, i servizi consentono alle app sul tuo computer di condividere funzionalità tra loro. Ad esempio, l'app Mail standard offre alle altre app la possibilità di creare nuovi messaggi e-mail o note basati sul testo attualmente selezionato.


Il servizio "Nuova email con selezione" fornito da Mail.app

La bellezza dei servizi è che consentono alle app di concentrarsi su ciò che sanno fare meglio rimuovendo l'onere di fornire funzionalità liberamente correlate che altre app già forniscono.

Oltre a consentire alle tue app di condividere funzionalità l'una con l'altra, puoi anche creare i tuoi servizi. Se sei un junky a linea di comando, allora comprendi il potere che i servizi forniscono, dal momento che essenzialmente ti consentono di creare script sensibili al contesto per le tue app in finestra. Vedremo un esempio di ciò scrivendo un nostro servizio. Il servizio che scriveremo in questo tutorial ti consentirà di selezionare un URL in qualsiasi applicazione che consenta la modifica del testo e convertirlo in un URL abbreviato mediante l'uso del servizio di abbreviazione URL di bit.ly senza mai uscire dall'app che stai attualmente in o toccando una finestra del browser.


1. Ottieni una chiave API bit.ly

Prima di poter iniziare con il nostro servizio, dobbiamo fare una piccola installazione. Per utilizzare bit.ly per abbreviare un URL selezionato, è necessario disporre dell'accesso degli sviluppatori al servizio. Quindi, il nostro primo compito sarà quello di registrarsi per un account sviluppatore bit.ly e ottenere la nostra chiave API.

Per farlo, devi accedere alla pagina web Key API e, se hai già un account sviluppatore, accedi.


La pagina di richiesta della chiave dell'API dell'account sviluppatore bit.ly

Altrimenti, dovrai registrarti per un nuovo account.


La pagina di registrazione dell'account sviluppatore bit.ly

Una volta terminato l'accesso o la registrazione, verrai indirizzato a una pagina che ti fornirà la chiave API.


La pagina chiave dell'API dell'account sviluppatore bit.ly

Una volta che hai configurato il tuo account sviluppatore e hai recuperato la tua chiave API, sarai a posto, ma devi comunque controllare i documenti API per avere un'idea di come utilizzare il servizio bit.ly in modo programmatico . In particolare, dai un'occhiata alla documentazione per il metodo di riduzione poiché è quella che utilizzeremo nel nostro servizio.


2. Creare il flusso di lavoro del servizio

Passo 1

Quindi, ora che abbiamo la nostra chiave API, siamo pronti per creare il nostro nuovo servizio. Useremo Automator per creare il nostro servizio, quindi vai avanti e aprilo ora e seleziona Servizio per il nostro nuovo tipo di flusso di lavoro.


Creazione di un nuovo flusso di lavoro del servizio in Automator

Passo 2

Controlla il L'output sostituisce il testo selezionato casella di controllo nella sezione in cima all'area del flusso di lavoro. Ciò garantirà che l'URL selezionato nella nostra app venga sostituito con la versione abbreviata emessa dal nostro servizio.


Controlla l'output sostituisce l'opzione di testo selezionata

Passaggio 3

Ora che hai impostato correttamente la tua nuova configurazione del flusso di lavoro, puoi procedere e aggiungere la tua prima azione. Fai una ricerca per il Esegui Shell Script azione e trascinarlo nell'area del flusso di lavoro.


Aggiunta di una nuova azione "Esegui script shell" al flusso di lavoro

Passaggio 4

Useremo Python per scrivere lo script che invierà l'URL lungo a bit.ly. Per impostazione predefinita, un nuovo servizio usa la shell predefinita come linguaggio di scripting, quindi dovrai cambiarla selezionando / Usr / bin / python nel Conchiglia menu `A tendina.


Selezione di Python come linguaggio di scripting per l'azione "Esegui script shell"

A seconda delle tue preferenze, potresti trovare più semplice gestire l'input come se fosse passato al tuo script come argomento della riga di comando piuttosto che leggerlo dallo standard input. Per fare ciò, dovrai selezionare il come argomenti opzione dal Passa l'input cadere in picchiata.


Scegliere di avere l'input passato nella nostra azione "Esegui script shell" come argomenti

Una volta che hai configurato tutto secondo le istruzioni sopra, il tuo Automator il flusso di lavoro dovrebbe essere come il seguente:


Lo stato finale di tutte le impostazioni per il servizio

3. Aggiungi il codice

Il codice per questo servizio è relativamente semplice. In sostanza, tutto ciò che stiamo facendo è la costruzione di un URL con il nostro nome utente, la chiave API e l'URL lungo, facendo una richiesta a tale URL e restituendo l'URL abbreviato nella risposta. Se hai esperienza con la programmazione, non dovresti avere alcun problema seguendo i passaggi elencati di seguito. Se non sei un programmatore esperto, ma sei interessato a imparare un po ', allora le seguenti spiegazioni dovrebbero essere interessanti. Se, tuttavia, desideri semplicemente creare il servizio e non essere disturbato dai dettagli, puoi saltare avanti Il codice sorgente completo sezione sottostante e semplicemente copiare e incollare il codice nel Esegui Shell Script azione nel tuo servizio.

Passo 1

Prima dovremo importare il urllib e urllib2 moduli. Verranno utilizzati per codificare correttamente i dati che stiamo inviando al servizio bit.ly e per inviare la richiesta stessa. Dovremo anche importare il jSON pacchetto per trasformare la risposta che otteniamo in un ditt di python. Infine, avremo bisogno di importare il SYS pacchetto per darci accesso agli argomenti della riga di comando. Questo ultimo modulo è necessario dal momento che abbiamo scelto di passare l'input come argomenti quando abbiamo aggiunto il Esegui Shell Script azione.

import urllib2 import urllib import json import sys 

Passo 2

In questo passaggio creeremo il payload (ovvero i dati) di cui abbiamo bisogno per richiedere l'URL abbreviato. Per iniziare, aggiungeremo due costanti per contenere il nome utente e la chiave API dell'account sviluppatore bit.ly che abbiamo generato nella prima parte di questo tutorial. Quindi, creeremo il carico utile (ovvero i dati) per la richiesta. Per fare ciò, creiamo un semplice dettato con tre coppie chiave / valore. I primi due saranno il nostro nome utente e la chiave API e il terzo sarà l'URL che desideriamo abbreviare, che recupereremo dall'elenco degli argomenti della riga di comando.

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

Passaggio 3

Una volta, abbiamo il nostro payload, avremo bisogno di costruire l'URL per la richiesta. Prima di tutto dovremo codificare gli URL dei nostri dati di payload poiché passeranno alla querystring della richiesta e quindi concatenarli sull'endpoint (ad es., URL) per il metodo di abbreviazione bit.ly.

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

Passaggio 4

Ora che abbiamo l'URL completo, siamo pronti a richiedere la versione abbreviata. Per prima cosa creiamo un oggetto Request con l'URL che abbiamo creato nei passaggi precedenti. Quindi, effettuiamo la richiesta e recuperiamo i dati dal servizio. I dati verranno restituiti come JSON, quindi dovremo tradurli in un dict python usando il modulo json.

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

Passaggio 5

Una volta che i dati sono stati recuperati e analizzati in un dt python, l'unico passo rimasto è quello di estrarre l'URL abbreviato dal dict e restituirlo. Per restituire l'URL, lo stampiamo semplicemente.

stampa messaggio ['data'] ['url'] 

Il codice sorgente completo

Il codice sorgente completo per il servizio è elencato di seguito, quindi puoi semplicemente copiarlo e incollarlo nel Esegui Shell Script azione nel tuo Automator flusso di lavoro.

import urllib import urllib2 import json import sys USERNAME = 'your_username' API_KEY = 'your_api_key' data = 'login': USERNAME, 'apiKey': API_KEY, 'longUrl': sys.argv [1] querystring = urllib.urlencode ( dati) url = 'https: //api-ssl.bitly.com/v3/shorten?% s'% querystring request = urllib2.Request (url) response = urllib2.urlopen (request) message = json.loads (response. leggi ()) scrivi messaggio ['data'] ['url'] 

4. Testare il servizio

Per testare il nostro servizio, dovremo aggiungere un'altra azione immediatamente prima del Esegui Shell Script azione. Questa nuova azione alimenterà semplicemente un URL statico nel file Esegui Shell Script azione che ci permette di verificare che lo script funzioni correttamente. Aggiungiamo ora questa nuova azione.

Passo 1

Fai una rapida ricerca per Ottieni il testo specificato azione e aggiungilo al tuo flusso di lavoro proprio sopra il Esegui Shell Script azione.


Aggiungi una nuova azione "Ottieni testo specificato" per testare il servizio

Passo 2

Dopo aver aggiunto la nuova azione, seleziona un URL lungo e bello e aggiungi copia e incolla nella casella di testo della nuova azione.


Aggiungi un lungo URL di test all'azione "Ottieni testo specificato" per testare l'azione "Esegui script shell"

Passaggio 3

Ora sei pronto per testare il tuo servizio. Clicca sul Correre pulsante nell'angolo in alto a destra del Automator barra degli strumenti dell'app.


Esegui il servizio con l'URL di prova

Passaggio 4

Saprai che il test è completo controllando l'output nel file Login sezione di Automator in basso, lato destro dell'app. Nella sezione del registro, dovresti vedere una manciata di segni di spunta verdi accanto alle attività che si sono verificate durante la corsa. Si spera che l'ultimo dei compiti sia detto Flusso di lavoro completato. Se lo fa, il test è completato senza fallire.


Controllare il registro per vedere quando il servizio ha terminato l'esecuzione

Passaggio 5

Ora che il test ha terminato di funzionare, puoi controllarne l'output per assicurarti che funzioni come previsto. Per fare ciò, fare clic su risultati pulsante in basso, lato sinistro del Esegui Shell Script azione. Questo rivelerà una nuova sezione che contiene l'output dell'azione. Se vedi un URL bit.ly ben ridotto lì, sai che il servizio funziona correttamente.


Controlla il risultato del test per assicurarti che l'azione "Esegui script shell" abbia funzionato correttamente e abbrevia l'URL

5. Distribuire il servizio

Con i tuoi test completati e il tuo servizio funziona correttamente, sei pronto per implementare il servizio. In altre parole, sei pronto per renderlo disponibile a tutte le app sul tuo computer. Per farlo, tutto ciò che devi veramente fare è salvare il flusso di lavoro e dargli un nome, ma prima di farlo, assicuriamoci che Ottieni il testo specificato l'azione che abbiamo aggiunto al flusso di lavoro a scopo di test non si intromette.

Passo 1

A partire da ora, se provassimo ad utilizzare il nostro servizio, restituiremmo solo l'URL abbreviato dell'URL di test che abbiamo aggiunto nella nostra ultima sezione. Il motivo è che il nostro Ottieni il testo specificato l'azione viene chiamata prima del nostro codice e quindi ignora completamente ogni input che gli viene dato (cioè il testo attualmente selezionato) e invece invia semplicemente l'URL nella sua casella di testo nel Esegui Shell Script azione. Puoi semplicemente rimuovere l'azione, se lo desideri, facendo clic sul pulsante Ottieni il testo specificato azione nel flusso di lavoro e premendo il pulsante Elimina. Ma cosa succede se si apportano modifiche al codice in futuro e si desidera testare tali modifiche? Bene, potresti semplicemente aggiungere il Ottieni il testo specificato azione e un URL di prova di nuovo quando arriva il momento, oppure è possibile mantenere quello che abbiamo attualmente e semplicemente disabilitarlo per il momento. Per disabilitare l'azione, selezionare l'azione nel flusso di lavoro e Premuto il tasto Control per visualizzare il menu di scelta rapida, quindi selezionare disattivare.


Disabilitare l'azione "Ottieni testo specificato" in modo che il nuovo servizio funzioni con il testo selezionato

Passo 2

Una volta disabilitato o eliminato il Ottieni il testo specificato azione, è possibile salvare il servizio, dargli il nome Accorcia l'URL selezionato-e inizia a usarlo in tutte le altre applicazioni del tuo sistema. Andiamo avanti e proviamo subito il nostro nuovo servizio.

Passaggio 3

Per testare il nostro nuovo servizio, useremo il TextEdit applicazione poiché viene fornita di serie su tutti i Mac. Vai avanti e apriti TextEdit e aggiungere un lungo URL ad esso. Quindi selezionare l'URL e selezionare TextEdit> Servizi> Accorcia l'URL selezionato. Dovrebbe essere necessario circa un secondo per la richiesta di passare al servizio bit.ly e viceversa, ma una volta terminato, il testo selezionato verrà sostituito con un URL bit.ly appena ridotto..


Testare il nuovo servizio "in the wild" usando TextEdit.app

6. Aggiungi una scorciatoia da tastiera (opzionale)

L'ultimo passaggio nello sviluppo del nostro servizio di abbreviazione degli URL è facoltativo. Fondamentalmente, accorciare un URL è qualcosa che faccio su base regolare e, almeno per me, avere una scorciatoia da tastiera associata al servizio rende ogni volta molto più semplice l'utilizzo che navigare nel menu Servizi. Con in mente, aggiungeremo una scorciatoia da tastiera al nostro nuovo servizio.

Passo 1

Per aggiungere una scorciatoia da tastiera per il nostro nuovo servizio, devi aprirlo Preferenze di Sistema e navigare verso Tastiera riquadro. Quindi selezionare il Tasti rapidi scheda seguita dal Servizi elemento nella lista a sinistra, e scorrere l'elenco dei servizi fino a trovare il nuovo servizio - dovresti trovarlo all'interno del Testo sezione.


Aggiunta di una scorciatoia da tastiera per il nuovo servizio

Passo 2

Ora dobbiamo solo aggiungere la combinazione di tasti effettiva che useremo per invocare il nostro servizio. Per fare ciò, fare clic sul aggiungi scorciatoia e premi la combinazione di tasti che preferisci. Ho scelto la combinazione Ctrl-Opzione-Comando-s per il mio, ma puoi scegliere qualsiasi cosa tu voglia, anche se dovresti cercare di evitare combinazioni di tasti già in uso.


Cosa Avanti?

In questo tutorial abbiamo dato un'occhiata approfondita ai servizi, una funzionalità molto potente di OS X. Abbiamo appreso quali servizi sono e come crearli e, nel corso di questo tutorial, ne abbiamo creato uno il nostro che possiamo usare per abbreviare lunghi URL usando bit.ly. L'unica domanda rimasta è "quale sarà il prossimo?"

Hai qualche idea per i servizi di informazione che vorresti creare? Hai creato qualcosa in passato? Condividi le tue idee e il codice nei commenti qui sotto!