tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
0
ZUGRIFFE
573
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Squizzer Squizzer ist offline Mitglied
    Registriert seit
    Apr 2010
    Beiträge
    10
    Hey Leute!

    ich möchte meiner C#-Anwendung die Funktion, den Twitter Status zu updaten, hinzufügen. Dafür habe ich bereits das Autorisierungsverfahren(OAuth) in mein Programm integriert. Dies funktioniert soweit auch und ich bekommen den Token und den Secret Token.
    Wenn ich jedoch jetzt den Status updaten möchte, erhalte ich den Fehler "401 Unauthorized", obwohl ich den Token mitschicke.
    Hier mal den entsprechenden Codeausschnitt:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    
    //Get OAuth Parameter
    OAuthBase oauth = new OAuthBase();
    string timestamp = oauth.GenerateTimeStamp();
    string nonce = oauth.GenerateNonce();
    string oauthParameter;
    string normalizedUrl;
    string signature = oauth.GenerateSignature(targetUri, _oauthConsumerKey, _oauthConsumerSecret, _twitterToken, _twitterSecretToken, method, timestamp, nonce, out normalizedUrl, out oauthParameter);
     
    //Create Request Object
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(targetUri);
    req.Method = "POST";
     
    //Set Autorisation Header
    StringBuilder headerValue = new StringBuilder();
    headerValue.Append("OAuth ");
    headerValue.Append(Uri.EscapeDataString("oauth_consumer_key") + "=\"" + Uri.EscapeDataString(_oauthConsumerKey) + "\", ");
    headerValue.Append(Uri.EscapeDataString("oauth_signature_method") + "=\"" + Uri.EscapeDataString(_oauthSignatureMethod) + "\", ");
    headerValue.Append(Uri.EscapeDataString("oauth_timestamp") + "=\"" + Uri.EscapeDataString(timestamp) + "\", ");
    headerValue.Append(Uri.EscapeDataString("oauth_version") + "=\"" + Uri.EscapeDataString(_oauthVersion) + "\", ");
    headerValue.Append(Uri.EscapeDataString("oauth_nonce") + "=\"" + Uri.EscapeDataString(nonce) + "\", ");
    if (useTokens)
        headerValue.Append(Uri.EscapeDataString("oauth_token") + "=\"" + Uri.EscapeDataString(_twitterToken) + "\", ");
    headerValue.Append(Uri.EscapeDataString("oauth_signature") + "=\"" + Uri.EscapeDataString(signature) + "\"");
    req.Headers.Add("Authorization", headerValue.ToString());
     
    //Get Data Bytes
    byte[] postBytes = Encoding.ASCII.GetBytes("status=TEST");
    req.ContentLength = postBytes.Length;
    req.ContentType = "application/x-www-form-urlencoded";
     
    //Write Post Data
    Stream requestStream = req.GetRequestStream();
    requestStream.Write(postBytes, 0, postBytes.Length);
    requestStream.Close();
     
    //Get Response
    HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

    Ich benutze dabei die C# OAuth Klasse von Eran Sandler (http://oauth.googlecode.com/svn/code/csharp/).
    Ich finde meinen Fehler einfach nicht. Wer kann mir helfen?
    Geändert von Squizzer (05.02.12 um 14:39 Uhr)
     

Ähnliche Themen

  1. Webservice antwortet in eiinem Einzelfall HTTP-Status 401: Unauthorized
    Von cyb3rdragon im Forum .NET Web und Kommunikation
    Antworten: 8
    Letzter Beitrag: 21.01.09, 19:10
  2. Bad header=HTTP/1.0 401 Unauthorized:
    Von brenner26 im Forum Hosting & Webserver
    Antworten: 0
    Letzter Beitrag: 14.07.02, 17:47

Stichworte