Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用DocuSign AuthenticationApi.login()进行旧版身份验证时出错-缺少授权类型/代码_Java_Docusignapi_Oltu - Fatal编程技术网

Java 使用DocuSign AuthenticationApi.login()进行旧版身份验证时出错-缺少授权类型/代码

Java 使用DocuSign AuthenticationApi.login()进行旧版身份验证时出错-缺少授权类型/代码,java,docusignapi,oltu,Java,Docusignapi,Oltu,我试图在DocuSign Java SDK中使用Authentication::login()API调用,但收到一个错误。下面是一些代码: @Component public class TestClass { private ApiClient apiClient; public void authenticate() { this.apiClient = new ApiClient("account-d.docusign.com", "docusignA

我试图在DocuSign Java SDK中使用Authentication::login()API调用,但收到一个错误。下面是一些代码:

@Component
public class TestClass {

    private ApiClient apiClient;

    public void authenticate() {

        this.apiClient = new ApiClient("account-d.docusign.com", "docusignAccessCode",
                "mySecretIntegratorKey", "myClientSecret");

        final AuthenticationApi authenticationApi = new AuthenticationApi(this.apiClient);

        try {
            // ERROR ON THE LINE BELOW
            final LoginInformation loginInformation = authenticationApi.login();
        } catch (final ApiException e) {
            // do something appropriate
        }
    }
}
mysecretintegratorey
myClientSecret
值显然不是我要发送的真正值,但其他值是

下面是我在进行login()调用时收到的错误:

我意识到这是在使用旧的旧式身份验证,但是我有一个限制,在今年第一年之前,我不允许升级到新的身份验证方法。所以现在我需要使用SDK版本2.2.1使用这个遗留方法

知道我做错了什么吗?我相信这很简单


感谢您抽出时间。

您想使用旧版身份验证吗

在这种情况下,您需要对代码进行多次更新

  • 仅调用
    newapiclient(基本url)
  • 设置X-DocuSign-Authentication标头--

  • 然后使用
    authenticationApi.login
    查找用户的帐户ID和匹配的基本URL
authenticationApi.login
doenot实际上让您登录。(!)

相反,该方法只提供有关当前用户的信息

没有使用API登录,因为它不使用会话。相反,每个API调用都会传递凭据。凭据可以是访问令牌(首选),也可以通过传统身份验证、名称/密码/集成密钥三元组

使用传统身份验证时,不使用客户端密码


更多信息:请参阅自述部分,了解如何在此

中使用用户名/密码,以防有人在寻找能够正常工作的完整遗留代码!下面的C#代码片段可以工作。这是生产就绪代码。我已经测试过了,效果很好。您必须单独创建信封定义,因为不包括此代码。但是,下面的内容将对用户进行身份验证,并将成功发送信封并取回信封ID:

string username = "john.bunce@mail.com"; 
string password = "your_password"; 
string integratorKey = "your_integration_key"; 

ApiClient apiClient = new ApiClient("https://www.docusign.net/restapi");

string authHeader = "{\"Username\":\"" + username + "\", \"Password\":\"" + password + "\", \"IntegratorKey\":\"" + integratorKey + "\"}";

apiClient.Configuration.AddDefaultHeader("X-DocuSign-Authentication", authHeader);
AuthenticationApi authApi = new AuthenticationApi(apiClient.Configuration);

LoginInformation loginInfo = authApi.Login();

string accountId = loginInfo.LoginAccounts[0].AccountId;
string baseURL = loginInfo.LoginAccounts[0].BaseUrl;
string[] baseUrlArray= Regex.Split(baseURL, "/v2");   

ApiClient apiClient2 = new ApiClient(baseUrlArray[0]); 
string authHeader2 = "{\"Username\":\"" + username + "\", \"Password\":\"" + password + "\", \"IntegratorKey\":\"" + integratorKey + "\"}";

apiClient2.Configuration.AddDefaultHeader("X-DocuSign-Authentication", authHeader2);        

EnvelopesApi envelopesApi = new EnvelopesApi(apiClient2.Configuration);

EnvelopeSummary results = envelopesApi.CreateEnvelope(accountId, envelopeDefinition);
string envelopeID = results.EnvelopeId;

谢谢你的详细回答。我已经搜索了专门用于使用遗留身份验证的文档,但是没有找到;与旧自述的链接是巨大的!我现在可以使用传统身份验证。
String authHeader = "{\"Username\":\"" +  username +
   "\",\"Password\":\"" +  password + 
   "\",\"IntegratorKey\":\"" +  integratorKey + "\"}";
apiClient.addDefaultHeader("X-DocuSign-Authentication", authHeader);
string username = "john.bunce@mail.com"; 
string password = "your_password"; 
string integratorKey = "your_integration_key"; 

ApiClient apiClient = new ApiClient("https://www.docusign.net/restapi");

string authHeader = "{\"Username\":\"" + username + "\", \"Password\":\"" + password + "\", \"IntegratorKey\":\"" + integratorKey + "\"}";

apiClient.Configuration.AddDefaultHeader("X-DocuSign-Authentication", authHeader);
AuthenticationApi authApi = new AuthenticationApi(apiClient.Configuration);

LoginInformation loginInfo = authApi.Login();

string accountId = loginInfo.LoginAccounts[0].AccountId;
string baseURL = loginInfo.LoginAccounts[0].BaseUrl;
string[] baseUrlArray= Regex.Split(baseURL, "/v2");   

ApiClient apiClient2 = new ApiClient(baseUrlArray[0]); 
string authHeader2 = "{\"Username\":\"" + username + "\", \"Password\":\"" + password + "\", \"IntegratorKey\":\"" + integratorKey + "\"}";

apiClient2.Configuration.AddDefaultHeader("X-DocuSign-Authentication", authHeader2);        

EnvelopesApi envelopesApi = new EnvelopesApi(apiClient2.Configuration);

EnvelopeSummary results = envelopesApi.CreateEnvelope(accountId, envelopeDefinition);
string envelopeID = results.EnvelopeId;