Я запустил код, указанный ниже, и он работает нормально для меня, после получения кода с предыдущего шага в URL:
public static void main(String[] args) {
String IntegratorKey = "[Your_Integrator_Key]";
String ClientSecret = "[Your_Secret_Key]";
String RedirectURI = "https://www.getpostman.com/oauth2/callback";//This REDIRECT_URI should match whats configured with IntegratorKey in your Sandbox account
String AuthServerUrl = "https://account-d.docusign.com";
String RestApiUrl = "https://demo.docusign.net/restapi";
ApiClient apiClient = new ApiClient(AuthServerUrl, "docusignAccessCode", IntegratorKey, ClientSecret);
apiClient.setBasePath(RestApiUrl);
apiClient.configureAuthorizationFlow(IntegratorKey, ClientSecret, RedirectURI);
Configuration.setDefaultApiClient(apiClient);
String code = "{ENTER_AUTH_CODE_FROM_PREVIOUS_STEP}";
apiClient.getTokenEndPoint().setCode(code);
apiClient.registerAccessTokenListener(new AccessTokenListener() {
@Override
public void notify(BasicOAuthToken token) {
System.out.println("Got a fresh token: " + token.getAccessToken());
}
});
apiClient.updateAccessToken();
}
Чтобы получить код, возвращенный DocuSign из браузера, вам необходимо иметь WEBApp
, на который DocuSign будет перенаправлять браузер, этот же URL-адрес обратного вызова должен быть настроен в REDIRECT_URI
вашей песочницы DS, например, если ваш URL-адрес обратного вызова WEBApp равен http://locahost:8080/docusignapp/callback,, то его следует добавить в REDIRECT_URI в IntegratorKey и аналогичнонеобходимо добавить при вызове DS URL для аутентификации пользователя.Как только DS аутентифицирует пользователя, он перенаправит браузер на ваш URL-адрес приложения.После нажатия на WEBApp вам нужно прочитать URL-адрес и удалить часть кода, используя Javascript, а затем запустить step2, чтобы получить токен доступа.Пример кода JS для удаления части code
:
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
var authCode = vars["code"];
В примере, которым вы делитесь, они делали это с помощью автономного кода, где вы вручную копируете часть кода из URL после аутентификации и запускаstep2.