2015-10-07 52 views
0

我想通過與DocuSign簡單的日誌模板。任何人都可以告訴我VBA代碼中缺少什麼。是否有引號或任何我需要做這項工作。我在我的電子郵件地址附加了一些引號。我有一個沙箱帳戶和我的開發人員密鑰,但是我收到401錯誤,無論我是否發送執行「GET」或不。我沒有采取從另一個踏板的代碼,但我不知道什麼是在Excel單元格,使此代碼的工作。Docusign與VBA - 代碼401

Public Sub APICallTest() 
Dim httpRequest As MSXML2.XMLHTTP60 
Dim httpResult As MSXML2.DOMDocument60 

' defined request and result variables 
Set httpRequest = New XMLHTTP60 
Set httpResult = New DOMDocument60 

'open login information url https://demo.docusign.net/restapi/v2 
httpRequest.Open "GET", "https://demo.docusign.net/restapi/v2/login_information.XML", False 

httpRequest.setRequestHeader "X-DocuSign-Authentication: <DocuSignCredentials><Username>MyUserName</Username><Password>" + Chr(34) + "[email protected]" + Chr(34)</Password><IntegratorKey>myintegratorkey</IntegratorKey></DocuSignCredentials>Accept: application/xml Content-Type: application/xml", "text" 

' send login information request 
httpRequest.send 
Debug.Print httpRequest.Status, "A" 
Debug.Print httpRequest.statusText, "B" 
Debug.Print httpRequest.responseText, "C" 

Exit Sub 
+0

這就是我回來的時候運行代碼: – Ron

+0

401一 未經授權乙 { 「錯誤碼」:「PARTNER_AUTHENTICATION_FAILED」, 「消息」:「指定的集成關鍵是沒有找到或已禁用。未指定集成商密鑰。「 } C – Ron

+0

你能看到發送給DocuSign的內容嗎?這聽起來像你的頭設置不正確(確保你有正確的用戶名/密碼/集成商密鑰。 – Andrew

回答

0

錯誤消息告訴你的問題是 - 你的集成關鍵是無論是在請求不存在或者是無效的(即不正確的)。我看到你的VB代碼,顯示你顯然包含在標題中的密鑰,但是因爲你沒有發佈你發送的原始請求,我的猜測是你的代碼不能正常工作,密鑰或頭不是正在正確設置。

嘗試這樣做:

  1. 登錄到您的模擬賬戶,進入您的喜好,並啓用請求記錄功能。 (更多關於如何做到這一點)
  2. 運行你的代碼。
  3. 返回到您的帳戶首選項並檢索將創建的日誌。
  4. 檢查日誌並確保您的Integrator密鑰和X-DocuSign-驗證標頭存在且正確。

有關如何啓用請求記錄在您的帳戶的完整指南在這裏看到:

https://support.docusign.com/guides/ndse-user-guide-api-request-logging

或者在這裏,如果你使用的是經典的DocuSign UI:

https://support.docusign.com/articles/API-Request-Logging

0

我懷疑問題是由於您試圖在httpRequest.setRequestHeader語句中設置多個標頭而引起的。

我建議他們分裂高達單獨陳述

httpRequest.setRequestHeader("X-DocuSign-Authentication","<DocuSignCredentials><Username>MyUserName</Username><Password>" + Chr(34) + "[email protected]" + Chr(34)+"</Password><IntegratorKey>myintegratorkey</IntegratorKey></DocuSignCredentials>") 
httpRequest.setRequestHeader("Accept","application/xml"); 
httpRequest.setRequestHeader("Content-Type","application/xml"); 

https://msdn.microsoft.com/en-us/library/ms766589(v=vs.85).aspx

希望這對您有用。

+0

謝謝,我會嘗試您的建議。 – Ron

+0

羅恩,我很高興我的建議是有幫助的。 – Deana

0

它現在的作品!這是它最終在VBA中看到的。有人知道如何將「application/xml」放在Header定義的末尾?

Public Sub APICallTest() 
Dim httpRequest As MSXML2.XMLHTTP60 
Dim httpResult As MSXML2.DOMDocument60 
'defined request and result variables 
Set httpRequest = New XMLHTTP60 
Set httpResult = New DOMDocument60 
'open login information url https://demo.docusign.net/restapi/v2 
httpRequest.Open "GET", "https://demo.docusign.net/restapi/v2/login_information" 

httpRequest.setRequestHeader "X-DocuSign-Authentication", "<DocuSignCredentials><Username>[email protected]</Username><Password>mypassword</Password><IntegratorKey>mykey</IntegratorKey></DocuSignCredentials>" 
httpRequest.setRequestHeader "Accept", "application/xml" 
httpRequest.setRequestHeader "Content-Type", "application/xml" 
httpRequest.send 
Debug.Print httpRequest.Status, "A" 
Debug.Print httpRequest.statusText, "B" 
Debug.Print httpRequest.responseText, "C" 
Set httpRequest = Nothing 
Set httpResult = Nothing 
Exit Sub