ho scritto un gestore OAuth per questo, perché le opzioni esistenti erano troppo complicato.
OAuth with Verification in .NET
La classe si concentra su OAuth, e lavora in particolare con Twitter. Questa non è una classe che espone un sacco di metodi per l'intera superficie dell'API web di Twitter. È solo OAuth. Se si desidera aggiornare lo stato su Twitter, questa classe non espone alcun metodo "UpdateStatus". Ho capito che è semplice per i progettisti di app costruire il messaggio HTTP che vogliono inviare. In altre parole, il messaggio HTTP è l'API. Ma la roba di OAuth può essere un po 'complicata, quindi merita un'API, che è la classe OAuth.
Ecco esempio di codice per richiedere una "richiesta di token":
var oauth = new OAuth.Manager();
oauth["consumer_key"] = MY_APP_SPECIFIC_CONSUMER_KEY;
oauth["consumer_secret"] = MY_APP_SPECIFIC_CONSUMER_SECRET;
oauth.AcquireRequestToken(SERVICE_SPECIFIC_REQUEST_TOKEN_URL, "POST");
questo è tutto. In Twitter, l'URL specifico del servizio per la richiesta di token è "https://api.twitter.com/oauth/request_token".
Una volta ricevuto il token di richiesta, si apre l'interfaccia utente del browser Web in cui l'utente concederà esplicitamente l'approvazione alla propria app per accedere a Twitter. È necessario farlo una volta, la prima volta che viene eseguita l'app. Fate questo in un controllo WebBrowser incorporato, con il codice in questo modo:
var url = SERVICE_SPECIFIC_AUTHORIZE_URL_STUB + oauth["token"];
webBrowser1.Url = new Uri(url);
Per Twitter, l'URL per questo è "https://api.twitter.com/oauth/authorize?oauth_token=" con l'oauth_token aggiunto.
Afferrare il pin dall'interfaccia utente del browser Web, tramite alcuni scatti di schermo HTML.Quindi richiedere un "token di accesso":
oauth.AcquireAccessToken(URL_ACCESS_TOKEN,
"POST",
pin);
Per Twitter, l'URL è "https://api.twitter.com/oauth/access_token".
Non è necessario gestire in modo esplicito il token di accesso; la classe OAuthManager lo mantiene in stato per te. Ma il token e il segreto sono disponibili in oauth["token"]
e oauth["token_secret"]
, nel caso in cui si desideri scriverli nella memoria permanente. Per fare richieste con quel token di accesso, genera l'intestazione AuthZ in questo modo:
var authzHeader = oauth.GenerateAuthzHeader(url, "POST");
... dove url
è il punto finale delle risorse. Per aggiornare lo stato dell'utente su Twitter, sarebbe "http://api.twitter.com/1/statuses/update.xml?status=Hello".
Quindi impostare la stringa risultante nell'intestazione HTTP denominata Autorizzazione e inviare la richiesta HTTP all'URL.
In esecuzioni successive, quando hai già il token di accesso e segreto, è possibile creare un'istanza della OAuth.Manager in questo modo:
var oauth = new OAuth.Manager();
oauth["consumer_key"] = MY_APP_SPECIFIC_CONSUMER_KEY;
oauth["consumer_secret"] = MY_APP_SPECIFIC_CONSUMER_SECRET;
oauth["token"] = your_stored_access_token;
oauth["token_secret"] = your_stored_access_secret;
Poi basta generare l'intestazione AuthZ, e fare le vostre richieste, come descritto sopra.
Scaricare il DLL
Vedere le Documentation
Grazie per la risposta, qualsiasi campione di lavoro di come autenticarsi con Twitter? – StackOverflower
prova questo http://nerddinner.codeplex.com/ – Bonshington