Sempre più spesso i server web che ci forniscono le API, richiedono l'accesso ai loro servizi con il protocollo oAuth 2.0.
Questa versione differisce dalla precedente per il fatto che sono richiesti altri parametri oltre alla chiave principale ed inoltre, questi dati non tutti vengono passati in query string, ma vengono utilizzati per costruire la signature che permetterà al client di essere riconosciuto dal server.
Windows Phone non fornisce un modo "standard" che possa andare bene per tutti i servizi: possiamo crearne una libreria allo scopo, che permette, in pochi semplici passi, di ottenere un URL per effettuare la richiesta.
const string consumerKey = "your-consumer-key"; const string consumerSecret = "your-consumer-secret"; const string token = "your-token-key"; const string tokenSecret = "your-token-secret"; Uri url = new Uri("http://api.yelp.com/v2/search?term=food&location=Milano", UriKind.Absolute); OAuthBase oauth = new OAuthBase(url, consumerKey, consumerSecret, token, tokenSecret, OAuthBase.HttpMethodTypes.GET, OAuthBase.SignatureTypes.HMACSHA1); string completeUrl = oauth.GetUrl();
Nel codice precedente la richiesta viene inoltrata ad un servizio offerto da Yelp, per ricercare un qualsiasi locale che vende del cibo nella zona di Milano.
Preparate le variabili contenenti l'URL a cui fare la chiamata e le chiavi private che vi fornisce il servizio stesso, basta fare una chiamata al costruttore della classe OAuthBase ed una chiamata alla funzione GetUrl, che ci restituisce l'URL corretto per fare la richiesta al server.
Rispetto ad altre librerie, quella usata nell'esempio e allegata allo script è molto semplice ed immediata da utilizzare.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare Hybrid Cache in .NET 9
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Ricevere notifiche sui test con Azure Load Testing
Path addizionali per gli asset in ASP.NET Core MVC
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Creare una libreria CSS universale: i bottoni
Utilizzare Azure Cosmos DB con i vettori
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Gestire la cancellazione di una richiesta in streaming da Blazor
Generare una User Delegation SAS in .NET per Azure Blob Storage
I più letti di oggi
- Gestione CSS in Blazor con .NET 9
- Ricavare l'indirizzo completo della pagina che esegue lo script
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!