Microsoft Excel

Microsoft Excel

giovedì 16 luglio 2015

Ottenere informazioni da Twitter con “Power Query”

L’uso dei “Social” è ormai diventato sempre più importante e necessario per una azienda. Essi ci permettono di comunicare e condividere le informazioni con un numero sempre maggiore di utenti, velocemente e a basso costo. Altrettanto importante è acquisire e gestire i dati contenuti nei propri profili, che servono all’azienda al fine di risolvere un problema di lavoro. Essi contengono molte informazioni importanti, come ad esempio, la data, il testo, il mittente e le foto. Queste informazioni devono essere gestite nel rispetto della privacy dell’utente.
Con questo blog vediamo come sia possibile acquisire informazioni da Twitter utilizzando “Power Query” e le API di Twitter.
In sostanza, partendo da una timeline di Twitter come quella sotto:



Vogliamo acquisirne le informazioni e in definitiva ottenere un foglio di calcolo del tipo.



Come fare per arrivare a questo lo ha scritto bene lo sviluppatore Kasper De Jonge nel blog http://www.powerpivotblog.nl/getting-data-into-power-query-with-the-twitter-search-api-how-to-hack-pq-to-use-oauth/
Con questo blog voglio solo rendere più chiaro il suo lavoro, adattandolo alle mie esigenze.
Procedere nel modo seguente:

1. Per prima cosa è necessario un account Twitter e l’add-on “Power Query” di Excel. Voglio solo ricordare due cose: per l’add-on “Power Query” di Excel è necessaria la versione di Excel 2010 o superiore; non è possibile applicare questa procedura a WhatsApp: per l’acquisizione delle informazioni dal Web è necessario che l’applicazione sia provvista di API (Application Interface).

2. Dopo l’accesso al proprio  profilo Twitter, nella home page, a sinistra in basso, accedere alla pagina Sviluppatori → Documentation → RestAPIs → API Console Tool (oppure direttamente in https://dev.twitter.com/rest/tools/console), fino a trovarsi in “Exploring the Twitter API”







Ci troviamo infine nella pagina seguente



3. A questo punto inizia il lavoro vero e proprio.
Seguire i passi successivi fino a ritornare alla pagina “Exploring the Twitter API” dove nel campo Authentication, al posto della voce “No Auth” iniziale, troveremo il nome del proprio profilo twitter. Per prima cosa procediamo con l’autenticazione, seguendo le figure sotto.









4. Una volta autenticati automaticamente ritorniamo alla pagina di partenza.
Scegliamo il servizio che interessa. In questo caso si vuole ottenere la timeline dei tweet ricevuti. Premere Send per avere la risposta.




5. "Send" restituisce le chiavi dei parametri (request, riquadro a sinistra) e un “oggetto” response contenente tutte le altre informazioni (riquadro a destra). Le chiavi (key) da inserire sono dunque quelle nella finestra request.
Response contiene tutte le altre informazioni, cioè i dati che vogliamo estrapolare, come “creato il”, “testo”, “entitis”, “ expanded_url“, come quelli che sono selezionati nelle successive figure 12.1, 13.1 e 13.2



6. Accedere all’editor avanzato di Power Query
Aprire un foglio Excel → barra degli strumenti “Power Query” (se avete installato “Power Query”) → Recupera dati esterni → Da altre origini → Query vuota → Editor di Query → Visualizza → Editor avanzato. Si apre a questo punto la pagina dell’editor avanzato (in questo caso c’è scritto Query5 ma voi troverete Query1).







7. Cancellate lo script presente (in italiano) e copiate lo script (in inglese) che trovate nel blog.
Nota: “power query” funziona sia con lo script in italiano o in inglese. controllare che tutte le virgolette siano riportate correttamente e corrispondano alla tastiera italiana. Le password scadono dopo un certo tempo molto piccolo ed è quindi necessario provvedere al loro aggiornamento.

let
Source = Web.Contents(“https://api.twitter.com/1.1/search/tweets.json?q=PowerPivot&count=100″, [Headers=[#”Authorization”=”OAuth oauth_consumer_key=””YOURKEY””, oauth_nonce=””YOURCODE””, oauth_signature=””YOURSIGNATURE””, oauth_signature_method=””HMAC-SHA1″”, oauth_timestamp=””TIMESTAMP””, oauth_token=””YOURTOKEN””, oauth_version=””1.0””]]
)
in
Source


8. Sostituite“https://api.twitter.com/1.1/search/tweets.json?q=PowerPivot&count=100”con “https://api.twitter.com/1.1/statuses/mentions_timeline.json”


9. Sostituite le chiavi “YOURKEY”,”YOURCODE”, ecc. con i corrispondenti valori alla pagina “Exploring the Twitter API”, avendo cura di inserire tutte le virgolette (e di verificare che siano le stesse della tastiera italiana)


10. Attenzione adesso: (nella pagina dell’editor avanzato) il codice compreso tra “Source=” e “in” deve stare tutto su una riga, come nella figura sotto (e non come al punto 7). Non chiedetemi il perché, ma altrimenti il codice non funziona.




11. Dopo aver scritto il codice premere su “Operazione completata” (in basso a dx della pagina dell’editor avanzato, cliccate sulla figura “api.twitter.com 1551 bytes” e ottenete una lista di record come nella figura qui sotto. Convertite la lista dei record in tabella premendo il bottone “In tabella”. Premere OK.





12. Adesso si tratta di interrogare i dati della tabella. Clicchiamo il bottone a dx accanto a Column1 e selezioniamo, ad esempio, 3 voci: “create at“, “text” ed “entitis” (in figura non si vede).





13. Interrogare in sequenza la colonna “Column1.entitis” selezionando la voce “media” e la colonna “Column1.entitis.media” selezionando la voce “expanded_url”






14. Si torna alla tabella di partenza con il pulsante “Carica e chiudi” (nella pagina Home)




Quindi abbiamo visto come acquisire la ns. timeline di Twitter, ma procedure simili possono essere utilizzate per gli altri Social purchè questi siano dotati di API.

Buon Lavoro
Daniele Paolinelli