2010-11-18 6 views
1

Ich habe eine vorhandene Anwendung, die Google Analytics-Daten anzeigt. Derzeit speichert es den Benutzernamen und das Passwort, die ich nicht mag, also wollte ich es konvertieren, um OAuth zu verwenden. Ich habe die Authentifizierungsmethode isoliert das Token in der Hoffnung zu bekommen, dass alles, was ich hätte tun müssen, ist diese Methode ändern:Wie kann ich von AuthSub zu Google OAuth migrieren?

public static string getSessionTokenClientLogin(string email, string password) 
{ 
    //Google analytics requires certain variables to be POSTed 
    string postData = "Email=" + email + "&Passwd=" + password; 

    //defined - should not channge much 
    postData = postData + "&accountType=HOSTED_OR_GOOGLE" + "&service=analytics" + "&source=testcomp-testapp-1"; 

    ASCIIEncoding encoding = new ASCIIEncoding(); 
    byte[] data = encoding.GetBytes(postData); 

    HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("https://www.google.com/accounts/ClientLogin"); 
    myRequest.Method = "POST"; 
    myRequest.ContentType = "application/x-www-form-urlencoded"; 
    myRequest.ContentLength = data.Length; 
    Stream newStream = myRequest.GetRequestStream(); 

    // Send the data. 
    newStream.Write(data, 0, data.Length); 
    newStream.Close(); 

    HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); 
    Stream responseBody = myResponse.GetResponseStream(); 

    Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); 
    StreamReader readStream = new StreamReader(responseBody, encode); 

    //returned from Google Analytics API 
    string response = readStream.ReadToEnd(); 

    //get the data we need 
    string[] auth = response.Split(new string[] { "Auth=" }, StringSplitOptions.None); 

    //return it (the authorization token) 
    return auth[1]; 
} 

Gibt es einen einfachen Weg, dies zu OAuth konvertieren? Ich kann die Parameter ändern, aber ich hoffe, dass ich für den Rest meiner App keine architektonischen Änderungen vornehmen muss. Vielen Dank!

+0

Hi TruMan, hast du es tatsächlich geschafft? Kannst du deinen Code irgendwo posten? – Burjua

Antwort

0

Sie sollten die Anleitung unter http://blog.stevienova.com/2008/04/19/oauth-getting-started-with-oauth-in-c-net/ als Grundlage für das Schreiben von Code zum Abrufen eines OAuth-Tokens verwenden können. Sie sollten https://www.google.com/accounts/OAuthGetRequestToken (wie angezeigt) anstelle von http://term.ie/oauth/example/request_token.php, natürlich verwenden. Ich denke nicht, dass Sie Ihre Architektur wesentlich verändern müssen, um das zu erreichen. Außerdem müssen Sie das Token autorisieren, bevor Sie es verwenden können. Ich denke, das Lesen von http://code.google.com/apis/accounts/docs/OAuth_ref.html sollte Sie das meiste von dem bekommen, was Sie brauchen.

Verwandte Themen