2013-02-14 4 views
6

Ich muss herausfinden, wie OAuth 2 verwendet wird, um Deviantart API zu verwenden.Verwendung von OAuth 2 - OAuth 2 C# -Beispiel

bekam ich die client_id und client_secret Teil

Hier die Informationen, die sie geben

Endpunkte

Die einzige Information, die Sie uns mit OAuth 2.0 authentifizieren müssen, sind die client_id und client_secret Werte für Ihre App sowie der unten gezeigte Endpunkt.

OAuth 2.0 Draft 10:

https://www.deviantart.com/oauth2/draft10/authorize https://www.deviantart.com/oauth2/draft10/token

OAuth 2.0 Entwurf 15:

https://www.deviantart.com/oauth2/draft15/authorize https://www.deviantart.com/oauth2/draft15/token

Placebo Anruf

Der erste Aufruf API auf OAuth verlassen 2.0 Authentifizierung ist der Placebo-Aufruf. Es ist nützlich, um zu überprüfen, ob ein Zugriffstoken noch gültig ist, bevor Sie einen echten API-Aufruf durchführen, der sehr lang sein kann, z. B. ein Datei-Upload. Sie nennen es mit einer der folgenden Endpunkte (ein Zugriffstoken zur Verfügung gestellt werden muss):

https://www.deviantart.com/api/draft10/placebo https://www.deviantart.com/api/draft15/placebo

Sie müssen den Endpunkt verwenden, die der OAuth 2.0 Entwurf entspricht, die Sie Ihr Token erhalten haben mit .

Es gibt immer die folgende JSON: {status: "success"}

Ich habe das Web durchsucht und diese ehrfürchtige Bibliothek gefunden.

DotNetOpenAuth v4.0.1

http://www.dotnetopenauth.net/

Hinzugefügt es als Referenz, haben aber keine Ahnung, was als nächstes zu tun. Selbst ein sehr kleines Beispiel wäre wirklich nützlich, wie OAuth verwenden 2

using DotNetOpenAuth; 
using DotNetOpenAuth.OAuth2; 

Hier ist die Seite, wo deviantart die Informationen

http://www.deviantart.com/developers/oauth2

Ok hier, was ich bisher gibt bekam aber nicht

Arbeits
public static WebServerClient CreateClient() { 
    var desc = GetAuthServerDescription(); 
    var client = new WebServerClient(desc, clientIdentifier: "myid"); 
    client.ClientCredentialApplicator = ClientCredentialApplicator.PostParameter("mysecret"); 
    return client; 
} 

public static AuthorizationServerDescription GetAuthServerDescription() { 
    var authServerDescription = new AuthorizationServerDescription(); 
    authServerDescription.AuthorizationEndpoint = new Uri(@"https://www.deviantart.com/oauth2/draft15/authorize"); 
    authServerDescription.TokenEndpoint = new Uri(@"https://www.deviantart.com/oauth2/draft15/token"); 
    authServerDescription.ProtocolVersion = ProtocolVersion.V20; 
    return authServerDescription; 
} 
public static WebServerClient CreateClient() { 
    var desc = GetAuthServerDescription(); 
    var client = new WebServerClient(desc, clientIdentifier: "myid"); 
    client.ClientCredentialApplicator = ClientCredentialApplicator.PostParameter("mysecret"); 
    return client; 
} 

public static AuthorizationServerDescription GetAuthServerDescription() { 
    var authServerDescription = new AuthorizationServerDescription(); 
    authServerDescription.AuthorizationEndpoint = new Uri(@"https://www.deviantart.com/oauth2/draft15/authorize"); 
    authServerDescription.TokenEndpoint = new Uri(@"https://www.deviantart.com/oauth2/draft15/token"); 
    authServerDescription.ProtocolVersion = ProtocolVersion.V20; 
    return authServerDescription; 
} 
+0

Haben Sie versucht, die DNOA-Proben zu betrachten? http://www.dotnetopenauth.net/ – Mansfield

+0

ja aber nicht funktioniert.aktualisiert die Frage – MonsterMMORPG

Antwort

9

Am einfachsten ist es jetzt, Visual Studio 2013 zu erstellen und eine neue ASP.NET-Webanwendung zu erstellen, indem Sie "Individuelle Benutzerkonten" auswählen Authentifizierungsart. Es gibt eine funktionierende OAuth 2-Implementierung (dort unter App_Start \ Startup.Auth.cs konfiguriert), die Sie ausschneiden und dann an Ihre Bedürfnisse anpassen können.

+2

Ich würde Client-basierte wie WPF bevorzugen, wenn möglich – MonsterMMORPG

+8

Die MVC-Anwendung verwendet OAuth1 im Gegensatz zu OAUth2. –

+1

Microsoft.Security.OWIN.OAuth verwendet OAuth 2: - http://www.nuget.org/packages/Microsoft.Owin.Security.OAuth/ –