Неверный запрос при попытке получить authToken с помощью API docusign - PullRequest
0 голосов
/ 30 мая 2018

Я новичок в API DocuSign и следовал примеру кода для C # на сайте руководства DocuSign.Я потерпел неудачу на шаге, пока пытался получить AuthToken.Часть моего кода, как показано ниже, в основном такая же, как пример DocuSign,

public void OAuthAuthorizationCodeFlowTest()
{
        ServicePointManager.Expect100Continue = true;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
        // Make an API call with the token
        ApiClient apiClient = new ApiClient(RestApiUrl);
        DocuSign.eSign.Client.Configuration.Default.ApiClient = apiClient;

        // Initiate the browser session to the Authentication server
        // so the user can login.
        string accountServerAuthUrl = 
        apiClient.GetAuthorizationUri(client_id, redirect_uri, true, 
        stateOptional);
        System.Diagnostics.Process.Start(accountServerAuthUrl);

        string accessToken = apiClient.GetOAuthToken(client_id, 
        client_secret, true, AccessCode);
        // login call is available in the authentication api 
        AuthenticationApi authApi = new AuthenticationApi();
        LoginInformation loginInfo = authApi.Login();

       // parse the first account ID that is returned (user might belong to 
       multiple accounts)
        AccountId = loginInfo.LoginAccounts[0].AccountId;
        BaseUri = loginInfo.LoginAccounts[0].BaseUrl;
        Console.WriteLine("accountId: " + AccountId);
        Console.WriteLine("base_uri: " + BaseUri);

client_id - это мой ключ интегратора, client_secret - это секретный ключ, связанный с этим ключом интегратора, верно?Я проверял их много раз, нет проблем.Я запутался сейчас, почему я все еще получаю 400 ошибок.Пожалуйста, пролите мне немного света, спасибо !!!

1 Ответ

0 голосов
/ 31 мая 2018

System.Diagnostics.Process.Start(accountServerAuthUrl); откроет его в браузере, и после успешной аутентификации браузер будет перенаправлен с параметром запроса code=.... в URL обратного вызова (redirect_uri)

Код вбраузер должен быть прочитан вашим WEBApp, а затем вам нужно вызвать приведенный ниже код для генерации AccessToken:

string accessToken = apiClient.GetOAuthToken(client_id, 
        client_secret, true, AccessCode);

Ниже код является одной частью, чтобы открыть браузер, в идеале это для тестирования наВ автономной системе на WEBApp вы будете перенаправлять браузер на accountServerAuthUrl

public void OAuthAuthorizationCodeFlowTest()
        {

            // Make an API call with the token
            ApiClient apiClient = new ApiClient(RestApiUrl);
            DocuSign.eSign.Client.Configuration.Default.ApiClient = apiClient;

            // Initiate the browser session to the Authentication server
            // so the user can login.
            string accountServerAuthUrl = apiClient.GetAuthorizationUri(client_id, redirect_uri, true, stateOptional);
            System.Diagnostics.Process.Start(accountServerAuthUrl);
        }

. Код запускается ниже, когда пользователь проходит проверку подлинности DocuSign в браузере, а браузер перенаправляется на redirect_uri с * 1014.*, ваше веб-приложение прочитает этот код и отправит его как AccessCode и вызовет указанный ниже код с вашего контроллера:

string accessToken = apiClient.GetOAuthToken(client_id, client_secret, true, AccessCode);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...