Java 请求访问令牌时出错。未接收到accessTokenResponse对象,可能接收到非HTTP 200?

Java 请求访问令牌时出错。未接收到accessTokenResponse对象,可能接收到非HTTP 200?,java,docusignapi,Java,Docusignapi,我遵循本教程: (我用的是java) 在第三步中,我不知道如何获取重定向uri中从DocuSign as query param返回的代码: //Java请求验证令牌 **String code=“{输入来自上一步的验证代码}”** //将其分配给令牌端点 apiClient.getTokenEndPoint().setCode(代码); //(可选)注册以在新令牌到达时获得通知 registerAccessTokenListener(新的AccessTokenListener(){ @凌驾 公

我遵循本教程: (我用的是java)

在第三步中,我不知道如何获取重定向uri中从DocuSign as query param返回的代码:
//Java请求验证令牌
**String code=“{输入来自上一步的验证代码}”**
//将其分配给令牌端点
apiClient.getTokenEndPoint().setCode(代码);
//(可选)注册以在新令牌到达时获得通知
registerAccessTokenListener(新的AccessTokenListener(){
@凌驾
公共无效通知(BasicAuthToken令牌){
System.out.println(“获得了一个新的令牌:+token.getAccessToken());
}
});
//下面的调用将授权代码交换为访问代码并进行更新
//api客户端上的“Authorization:bearer”头
apiClient.updateAccessToken();
我收到一个错误,说请求的访问令牌为空。以下是错误:

请求访问令牌时出错。没有接收到
accessTokenResponse
对象,可能接收到非HTTP 200


有没有人曾经得到过同样的一个,或者可能有人告诉我如何修复它。

我运行了下面的代码,在从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返回的代码,您需要有一个DocuSign将浏览器重定向到的
WEBApp
,同样的回调URL应该在DS沙盒的
redirect\u URI
中配置,例如,如果您的WEBApp回调URL为,然后,这应该添加到IntegratorKey中的REDIRECT_URI中,并且在调用DS URL对用户进行身份验证时需要添加相同的内容。一旦DS对用户进行身份验证,它会将浏览器重定向到您的应用程序url。点击WEBApp时,您需要读取URL并使用Javascript剥离代码部分,然后运行步骤2以获取访问令牌。剥离
code
部分的示例JS代码如下:

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"];
var-vars=[],散列;
var hashes=window.location.href.slice(window.location.href.indexOf('?')+1).split('&');
for(var i=0;i

在您共享的示例中,他们是使用独立代码完成的,在验证后,您将从URL手动复制代码部分并运行步骤2。

非常感谢您的解释!你能把你的代码添加到git repo中并在这里发布链接吗?@Amit K Bist-谢谢你对重定向URI的解释;这也许是我读过的最清楚的解释了!应用程序将使用哪个web服务器?雄猫,玻璃鱼,还有别的吗?这是我将使用Tomcat的一个潜力
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"];