đây là câu hỏi ít hơn câu trả lời. Tôi nghĩ rằng tôi sẽ muốn chia sẻ điều này với bạn, vì tôi có chút bối rối khi tìm kiếm litte về ebay OAuth 2.0 kết hợp với một ứng dụng web C#.Cách nhận mã thông báo truy cập từ ebay qua oauth 2.0 trong C#
Tôi đã cố gắng bắt đầu sử dụng thư viện RESTsharp, nhưng bị kẹt tại điểm, nơi nội dung nội dung được tạo. RESTsharp thích XML hoặc JSON, ebay muốn có một chuỗi với các tham số.
Vì vậy, để cung cấp cho bạn một chút trợ giúp nếu bạn gặp phải vấn đề tương tự, tôi quyết định đăng giải pháp của mình (không sử dụng RESTsharp).
public class HomeController : Controller {
string clientId = "YOUR_CLIENT_ID";
string clientSecret = "YOUR_CLIENT_SECRET";
string ruName = "YOUR_RU_NAME";
// Chuyển các yêu cầu để có được một yêu cầu mã
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();
}
// Tôi đã từng thử nghiệm như một phương pháp để kiểm tra kết quả trong bộ điều khiển, sử dụng phương pháp apropriate của bạn ở đây
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();
}
Nếu bạn xuất ViewBag.Response, bạn sẽ thấy mã ủy quyền. Chúc vui vẻ.
chuyển logic của bạn ra khỏi bộ điều khiển và đưa vào mô hình. sau đó chúng có thể được sử dụng trong các thư viện mà sau đó có thể được sử dụng trong các dự án khác, có thể là giao diện điều khiển, web hoặc wpf/winforms. – user3791372
cũng là tài liệu mới: http://developer.ebay.com/devzone/rest/sell/content/selling-ig/dev-app.html cung cấp phân tích rõ ràng hơn và ngắn gọn về cách nhận khóa và hơn thế nữa với giải thích đầy đủ. – user3791372
Trong http://developer.ebay.com/devzone/rest/ebay-rest/content/oauth-quick-ref-user-tokens.html là một số tài liệu về nó. Tôi không tìm thấy trong phạm vi "ActionResult Index()" của bạn. Bạn có nhận được mã thông báo không có nó không? –