Я не могу понять, где или нужно ли мне настраивать конечные точки API для QuickBooks OAuth2.
Если я добавляю базовый URL для запроса кода, QuickBooks правильно возвращается к URL перенаправления с кодом,После этого я не знаю, как добавить конечную точку для обмена токенами.
На обмене токенами я получаю исключение:
Value cannot be null. Parameter name: endpoint
В конечном счете, я могу 't выяснить, как правильно установить конечные точки.Любая помощь будет оценена.
public class QuickbooksController : Controller
{
public static OAuth2Client oauthClient = new OAuth2Client(
"REDACTED",
"REDACTED",
"https://localhost:302/QuickBooks/AccessToken/",
"sandbox");
// GET: Quickbooks
public ActionResult Index(string connect, string msg)
{
if (!String.IsNullOrEmpty(connect)) {
//Prepare scopes
List<OidcScopes> scopes = new List<OidcScopes>();
scopes.Add(OidcScopes.Accounting);
scopes.Add(OidcScopes.OpenId);
string authorizeUrl = oauthClient.GetAuthorizationURL(scopes);
return Redirect("https://appcenter.intuit.com/connect/oauth2" + authorizeUrl);
}
ViewBag.TokenFailed = false;
ViewBag.ConfirmMessage = msg;
return View(new QuickBooksViewModel(new App()));
}
public async Task<ActionResult> Accesstoken(string state, string code, string realmId)
{
try {
TokenResponse tokenResponse = await oauthClient.GetBearerTokenAsync(code);
if (tokenResponse.IsError) {
return RedirectToAction("Index", new { msg = "Error connecting to QuickBooks. Response: " + tokenResponse.Raw });
}
return RedirectToAction("Index", new { msg = "Connected to QuickBooks. Token: " + tokenResponse.AccessToken });
} catch (Exception ex) {
return RedirectToAction("Index", new { msg = "Error connecting to QuickBooks. Error: " + ex.Message });
}
}