das ist weniger eine Frage als eine Antwort. Ich dachte, ich würde dies mit dir teilen wollen, da ich ein wenig verwirrt war, weil ich so wenig über das eBay OAuth 2.0 in Kombination mit einer C# -Webanwendung fand.Wie bekomme ich ein Zugangs-Token von eBay über OAUTH 2.0 in C#
Ich habe versucht, die RESTsharp-Bibliothek zu verwenden, blieb aber an dem Punkt hängen, an dem der Body-Inhalt erstellt wurde. RESTsharp bevorzugt XML oder JSON, ebay will eine Zeichenkette mit Parametern.
Um Ihnen ein wenig Hilfe zu geben, wenn Sie das gleiche Problem haben, habe ich mich entschlossen, meine Lösung zu posten (ohne RESTsharp).
public class HomeController : Controller {
string clientId = "YOUR_CLIENT_ID";
string clientSecret = "YOUR_CLIENT_SECRET";
string ruName = "YOUR_RU_NAME";
// die Anfrage umleiten ein Anforderungs-Token
public ActionResult Index() {
var authorizationUrl =
"https://signin.sandbox.ebay.de/authorize?" +
"client_id=" + clientId + "&" +
"redirect_uri=" + ruName + "&" +
"response_type=code";
Response.Redirect(authorizationUrl);
return View();
}
zu bekommen // Ich benutzte Test-als Methode das Ergebnis in der Steuerung zu testen, verwenden Sie Ihre apropriate Methode hier
public ActionResult Test(string code)
{
ViewBag.Code = code;
// Base 64 encode client Id and client secret
var clientString = clientId + ":" + clientSecret;
byte[] clientEncode = Encoding.UTF8.GetBytes(clientString);
var credentials = "Basic " + System.Convert.ToBase64String(clientEncode);
HttpWebRequest request = WebRequest.Create("https://api.sandbox.ebay.com/identity/v1/oauth2/token")
as HttpWebRequest;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Headers.Add(HttpRequestHeader.Authorization, credentials);
var codeEncoded = HttpUtility.UrlEncode(code);
var body = "grant_type=authorization_code&code=" + codeEncoded + "&redirect_uri=" + ruName;
// Encode the parameters as form data
byte[] formData = UTF8Encoding.UTF8.GetBytes(body);
request.ContentLength = formData.Length;
// Send the request
using (Stream post = request.GetRequestStream())
{
post.Write(formData, 0, formData.Length);
}
// Pick up the response
string result = null;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
result = reader.ReadToEnd();
}
ViewBag.Response = result;
return View();
}
Wenn Sie ViewBag.Response ausgeben, sehen Sie den Autorisierungscode. Habe Spaß.
Bewegen Sie Ihre Logik aus Controllern und in Modelle. Sie können dann in Bibliotheken verwendet werden, die wiederum in anderen Projekten verwendet werden können, sei es console, web oder wpf/winforms. – user3791372
auch neue Dokumentation: http://developer.ebay.com/devzone/rest/sell/content/selling-ig/dev-app.html, die eine klarere und prägnante Aufschlüsselung gibt, wie man Schlüssel und mehr mit vollen Erklärungen erhält. – user3791372
In http://developer.ebay.com/devzone/rest/ebay-rest/content/oauth-quick-ref-user-tokens.html ist etwas Material darüber. Ich habe den Bereich "ActionResult Index()" nicht gefunden. Hast du ohne es Corde Tokens bekommen? –