ich einen einfachen Status-Update von C# /. NET zu machen in der Lage sein wollte, konnte aber eine große Bibliothek einzubetten.
Also schrieb ich eine kleine OAuth.Manager class, die dieses Zeug tut.
Es ist hier beschrieben:
OAuth with Verification in .NET
Beispielcode Status zu aktualisieren:
var oauth = new OAuth.Manager();
oauth["consumer_key"] = CONSUMER_KEY;
oauth["consumer_secret"] = CONSUMER_SECRET;
oauth["token"] = your_stored_access_token;
oauth["token_secret"] = your_stored_access_secret;
var url = "http://api.twitter.com/1/statuses/update.xml?status=Hello+World";
var authzHeader = oauth.GenerateAuthzHeader(url, "POST");
var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.Headers.Add("Authorization", authzHeader);
using (var response = (HttpWebResponse)request.GetResponse())
{
if (response.StatusCode != HttpStatusCode.OK)
MessageBox.Show("There's been a problem trying to tweet:" +
Environment.NewLine +
response.StatusDescription +
Environment.NewLine +
Environment.NewLine +
"You will have to tweet manually." +
Environment.NewLine);
}
Zum ersten Mal durch, müssen Sie einen Zugriffstoken und Geheimnis zu bekommen. Dies wird in einem mehrstufigen Verfahren durchgeführt, mit diesem Code Start:
var oauth = new OAuth.Manager();
oauth["consumer_key"] = MY_APP_SPECIFIC_KEY;
oauth["consumer_secret"] = MY_APP_SPECIFIC_SECRET;
oauth.AcquireRequestToken("https://api.twitter.com/oauth/request_token", "POST");
Schritt 2 ist, dem Benutzer zu sagen ** https://api.twitter.com/oauth/authorize?oauth_token=XXXX
zu besuchen, wo xxxx mit dem tatsächlichen Token ersetzt empfangen wird, zugänglich in diesem Fall durch oauth["token"]
. Schritt 3 besteht darin, dem Benutzer mitzuteilen, dass er die PIN von der Webseite (ctrl-c) übernehmen und in Ihre App einfügen soll, wo Sie den Pin verwenden, um einen anderen Tokentyp zu erhalten.
Eine bessere Möglichkeit besteht darin, diese Web-UI-Sequenz zu automatisieren, indem Sie ein Windows Form mit einem eingebetteten WebBrowser-Steuerelement verwenden. Wenn Sie die Url-Eigenschaft dieses Steuerelements auf den entsprechenden Wert festlegen, wird diese Webseite für Sie im Hauptformular Ihrer eigenen App angezeigt. Sie können auch den Teil automatisieren, von dem Sie die PIN abrufen. Dies reduziert Kontextwechsel für Ihren Benutzer und erleichtert das Verständnis.
Wie auch immer, mit dem Stift Sie tun, Schritt 4:
oauth.AcquireAccessToken("https://api.twitter.com/oauth/access_token",
"POST",
pin);
..., die eine andere HTTP REST Anfrage sendet, und wenn er zurückkehrt werden Sie ein accesss Token und Geheimnis haben, in oauth["token"]
und oauth["token_secret"]
.
Diese Autorisierung Zeug mit der Web-UI muss nur einmal passieren; Nachdem Sie das Zugriffs-Token und das geheime einmal erhalten haben, können Sie sie speichern und sie erneut verwenden. Sie laufen nie ab, sagt Twitter.
Sie können dann zum Senden des Status-Update gehen ...
var url = "http://api.twitter.com/1/statuses/update.xml?status=Hello+World";
var authzHeader = oauth.GenerateAuthzHeader(url, "POST");
...
... wie oben.
Sie gesagt haben, es nicht funktioniert, aber gab uns keine Informationen darüber, was es * macht *. –
Es tut nichts. Die Statusmeldung ändert sich nicht und es wird keine Ausnahme ausgelöst. –