为什么在通过 SOAP 请求对 Adob​​e EchoSign Cloud 执行 ping 操作时得到 "Wrong API base URL used"?

Why do i get "Wrong API base URL used" when pinging Adobe EchoSign Cloud by a SOAP request?

我正在尝试访问 Adob​​e EchoSign Cloud 中的签名文档。我有一个 API 密钥用于身份验证,并在 testPing SOAP 请求中使用它,例如

<soapenv:Envelope 
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:api="http://api.echosign">
    <soapenv:Header/>
    <soapenv:Body>
        <api:testPing>
            <api:apiKey>myKeyhere</api:apiKey>
        </api:testPing>
    </soapenv:Body>
</soapenv:Envelope>

我已将此请求发送至

https://secure.echosign.com/services/EchoSignDocumentService22

但结果我只得到

<soap:Envelope 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soap:Body>
        <soap:Fault>
            <faultcode>soap:Server</faultcode>
            <faultstring>Wrong API base URL used</faultstring>
        </soap:Fault>
    </soap:Body>
</soap:Envelope>

这条消息是什么意思?

我怀疑跨域,但你应该用 fiddler 测试一下。它报告您的问题的更干净的数据。

我在 Adob​​e 文档中发现了一条重要说明:

However, starting from version 22 of the Document API, all API calls must be made on a specific base URL obtained either using the OAuth workflow (the api_access_point parameter that is included with an authorization code) or by making a call to the getBaseUris method. The corresponding gateway can then be constructed by concatenating the base URL with "services/EchoSignDocumentService22". Calls made on the wrong base URL will result in an exception indicating that the wrong API base URL was used. Note that getBaseUris itself can be called on any appropriate gateway, including the one mentioned above.

调用 getBaseUris 确实 returns 另一个 URI,然后可用于后续请求。