我想在Access中使用VBA使用垂直響應API處理SOAP登錄方法。他們不會用示例來推廣VBA,他們建議使用他們支持的工具和示例,如Java和PHP中的工具和示例。不能使用垂直響應SOAP API登錄方法的VBA
在他們的API文檔頁面,在http://developers.verticalresponse.com/api/,他們說,終點是:https://api.verticalresponse.com/wsdl/1.0/VRAPI.wsdl
在他們的API文檔頁面,說明登錄鏈接是其它方法選項卡上。描述
輸入參數爲:
username [xsd:string]
password [xsd:string]
session_duration_minutes [xsd:integer]
我曾嘗試以下VBA代碼,具有用於URL,SOAP信封和標頭的變化。我從來沒有得到過會議ID,但總是無用的文字顯示如下。
Function VRLogin() As String
Dim sURL As String
Dim sEnv As String
Dim xmlhtp As New MSXML2.XMLHTTP
sURL = "https://api.verticalresponse.com/wsdl/1.0/VRAPI"
sEnv = sEnv & "<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">"
sEnv = sEnv & " <soap:Body>"
sEnv = sEnv & " <username>[email protected]</username>"
sEnv = sEnv & " <password>xxxxxxxx</password>"
sEnv = sEnv & " <session_duration_minutes>120</session_duration_minutes>"
sEnv = sEnv & " </soap:Body>"
sEnv = sEnv & "</soap:Envelope>"
xmlhtp.Open "post", sURL, False
xmlhtp.setRequestHeader "Content-Type", "text/xml"
xmlhtp.setRequestHeader "SOAPAction", "login"
xmlhtp.send sEnv
VRLogin = xmlhtp.ResponseText
End Function
在URL中的以下變化:
響應文本是類似於以下內容:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL /wsdl/1.0/VRAPI was not found on this server.<P>
</BODY></HTML>
如果URL中包含 「WSDL」 之類的下列之一:
sURL = "https://api.verticalresponse.com/wsdl/1.0/VRAPI.wsdl"
sURL = "https://api.verticalresponse.com/wsdl/1.0/VRAPI.wsdl/login"
sURL = "https://api.verticalresponse.com/wsdl/1.0/VRAPI.wsdl?method=login"
響應文本是WSDL文檔:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:vrns="http://api.verticalresponse.com/1.0/VRAPI" xmlns:vrtypens="http://api.verticalresponse.com/1.0/VRAPI.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:vr="http://www.verticalresponse.com/vrns" targetNamespace="http://api.verticalresponse.com/1.0/VRAPI" name="VRAPI">
<wsdl:types>
<xsd:schema targetNamespace="http://api.verticalresponse.com/1.0/VRAPI.xsd">
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<xsd:complexType name="ArrayOfCampaignContentLink">
<xsd:complexContent>
<xsd:restriction base="soapenc:Array">
<xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="vrtypens:CampaignContentLink[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
etc ...
我也試圖加入「XSD:」到SOAP信封,因爲我已經在一些例子中,這並沒有幫助,像偶可見:
sEnv = sEnv & " <xsd:username>[email protected]</xsd:username>"
sEnv = sEnv & " <xsd:password>xxxxxxxx</xsd:password>"
sEnv = sEnv & " <xsd:session_duration_minutes>120</xsd:session_duration_minutes>"
我修改了標題,如:內容類型,除去頭,並提出了一個完全合格的SOAPAction頭像下面,沒有成功:
xmlhtp.setRequestHeader "SOAPAction", "https://api.verticalresponse.com/wsdl/1.0/VRAPI/login"
我的API訪問權限已啓用,但我的結果示我甚至沒有進行認證。我認爲這是URL,SOAP信封或標題中的問題。
從他們爲端點提供的信息和其輸入的登錄信息來看,似乎我應該可以使用VBA設置API調用。這個問題不應該針對垂直響應API。
任何人都可以看到我失蹤?
另外:這可能是一個不同的問題,但它是相關的,並且需要調用API。
如何在SOAP信封中傳遞數組?