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