>

이것은 답보다 질문이 아닙니다. C # 웹 응용 프로그램과 함께 ebay OAuth 2.0에 대해 약간 혼란스러워 발견했기 때문에 이것을 공유하고 싶었습니다.

RESTsharp 라이브러리를 사용하려고 시도했지만 본문 내용이 생성되는 시점에 멈췄습니다. RESTsharp는 XML 또는 JSON을 선호하며 ebay는 매개 변수가있는 문자열을 원합니다.

같은 문제가 발생하면 도움을주기 위해 RESTsharp를 사용하지 않고 솔루션을 게시하기로 결정했습니다.

public class HomeController : Controller {
    string clientId = "YOUR_CLIENT_ID";
    string clientSecret = "YOUR_CLIENT_SECRET";
    string ruName = "YOUR_RU_NAME";

// 요청을 가져 와서 요청 토큰을 가져 오기

   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();
    }

// Test를 컨트롤러에서 결과를 테스트하는 방법으로 사용했습니다. 여기에서 적절한 방법을 사용하십시오

   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();
    }

ViewBag.Response를 출력하면 인증 코드가 표시됩니다. 재미있게 보내세요.

  • 답변 # 1

    리디렉션 URL은 샌드 박스에서 어떻게 보입니까? URL이 https이어야합니다. 이 단계에서는 개발 환경에서 https가있는 서버가 없습니다. 어떻게 처리 했습니까?

    Ta

관련 자료

  • 이전 각 변수에 대한 변수 레이블이있는 dta 파일이 있습니다 R로 가져온 후에는이 레이블을 어떻게 볼 수 있습니까?
  • 다음 (spring boot 2) javalangillegalstateexception - applicationcontex를로드하지 못했습니다