Я пытаюсь получить токен доступа OAuth2 от ZOHO, используя код RestSharp. Симуляция Почтальона работает правильно, поэтому я знаю, что в моем коде чего-то не хватает.
Я всегда получаю статус результата «неверный идентификатор клиента». Однако в Postman это работает и возвращает код, когда я нажимаю «Получить новый токен доступа». У меня есть те же элементы, что и на вкладке авторизации Почтальона (client_id, client_secret и т. Д.). В «Почтальоне» для «Тела» установлено значение «нет», и нет никаких параметров или заголовков. Единственная разница между моим кодом и почтальоном в том, что почтальону требуется URL обратного вызова. Мой код пытается получить код, используя «self-client», который обходит URL обратного вызова.
Я пробовал несколько различных альтернатив вызову запроса, включая ParameterType.Body и ParameterType.GetOrPost. GetOrPost - это то же самое, что и форма?
client = New RestClient(ZOHO_API_URL)
request = New RestRequest(TokenUrl, Method.POST)
request.AddHeader("content-type", "application/x-www-form-urlencoded") ' also tried: "application/json")
request.AddParameter("grant_type", "authorization_code",
ParameterType.GetOrPost)
request.AddParameter("client_id", Client_ID, ParameterType.GetOrPost)
request.AddParameter("client_secret", Client_Secret,
ParameterType.GetOrPost)
request.AddParameter("code", Grant_Token, ParameterType.GetOrPost)
response = client.Execute(request)
Это переведенный код почтальона для RestSharp:
var client = new RestClient("http://");
var request = new RestRequest(Method.POST);
request.AddHeader("Postman-Token", "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx");
request.AddHeader("cache-control", "no-cache");
IRestResponse response = client.Execute(request);
Любые идеи о том, что я делаю неправильно. Я пытался просмотреть необработанные данные, попадающие с Fiddler, но когда я это сделал, Почтальон указывает на сбой.
Какой код мне нужно использовать, чтобы дублировать то, что делает Почтальон?
Как реализовать URL обратного вызова, если это также требуется?