홈>
이것은 답보다 질문이 아닙니다. 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
관련 자료
- Google 문서 도구 OAuth 20을 얻는 방법입니다 3600 초 이상 존재하는 액세스 토큰?
- laravel - twitter oauth 액세스 토큰 오류 - 요청 토큰이 없습니다
- azure active directory - Microsoft Oauth 20에서 액세스 토큰을 얻을 수 없음
- java - 푸른 봄 부팅 - 로그인 한 사용자의 oauth 20 액세스 토큰 가져 오기
- php - Viva Wallet에서 OAuth 2 액세스 토큰을 얻는 방법
- python - oauth에 대한 액세스 토큰을 검색 할 수 없습니다
- Firebase Javascript SDK를 사용하여 사용자의 Twitter 액세스 토큰 및 비밀에 액세스 할 수 있습니까?
- ruby on rails - 문지기에서 액세스 토큰을 차단하거나 제한 할 수 있습니까?
- identityserver4 - 액세스 토큰에서 사용자 정보 얻기 WebApi Aspnet Core
- elixir - API 라이브러리없이 Google에서 액세스 토큰을 얻는 방법은 무엇입니까?
- azure - 앱 아이덴티티 - 앱 id와 액세스 토큰의 관계
- C # webapp는 IIS에 게시 될 때 OAuth 토큰을받지 못합니다
- amazon web services - AWS Cognito JWT 인증은 ID 토큰과는 작동하지만 액세스 토큰은 작동하지 않습니까? 401을 반환
- ruby on rails - 액세스 토큰을 얻기 위해 curl을 HTTP POST 요청으로 다시 작성
- api - 새로 고침 토큰에 대한 google oauth - invalid_grant
- php - 새로 고침 토큰으로 갱신 한 후 액세스 토큰이 동일
- http - flutter/dart에서 REST API로 액세스 토큰 가져 오기
- javascript - flutter에서 액세스 토큰 값을 검색하는 방법
- linux - 개인용 액세스 토큰으로 git에 푸시
- oauth 2.0 - 흐름 대신에 Microsoft Graph에 다른 발급자의 액세스 토큰을 사용할 수 있습니까?
리디렉션 URL은 샌드 박스에서 어떻게 보입니까? URL이 https이어야합니다. 이 단계에서는 개발 환경에서 https가있는 서버가 없습니다. 어떻게 처리 했습니까?
Ta