VBA和SurveyMonkey API
我试图通过VBA访问SM API。我暂时没有使用JSON,因为我已经有麻烦了。下面是给我“开发者不活跃”的结果,虽然我在VB.NET中有另一个项目(使用.NET DLL),其中相同的键和令牌工作正常,我可以检索调查列表。 我做错了什么VBA和SurveyMonkey API,vba,surveymonkey,Vba,Surveymonkey,我试图通过VBA访问SM API。我暂时没有使用JSON,因为我已经有麻烦了。下面是给我“开发者不活跃”的结果,虽然我在VB.NET中有另一个项目(使用.NET DLL),其中相同的键和令牌工作正常,我可以检索调查列表。 我做错了什么 Public Sub GetSMList() Dim apiKey As String Dim Token As String Dim sm As Object apiKey = "myKey" Token = "myToken" Set sm = Cre
Public Sub GetSMList()
Dim apiKey As String
Dim Token As String
Dim sm As Object
apiKey = "myKey"
Token = "myToken"
Set sm = CreateObject("MSXML2.XMLHTTP.6.0")
With sm
.Open "POST", "https://api.surveymonkey.net/v2/surveys/get_survey_list", False
.setRequestHeader "Authorization", "Bearer " & Token
.setRequestHeader "Content-Type", "application/json"
.send "api_key=" & apiKey
result = .responseText
End With
End Sub
此代码的目的是显示错误处理。这是vbscript,但vbscript可复制到VBA中。错误可能会告诉您原因 总是在文件(用户删除它们)、网络或internet(它们不保证工作)和注册表读取(用户删除它们)上出错。 URL必须100%正确。与浏览器不同,没有修复URL的代码 我的程序的目的是获取错误详细信息 如何获得正确的URL是在浏览器中键入URL,进行导航,并且正确的URL通常位于地址栏中。另一种方法是使用链接等的属性来获取URL 另外
Microsoft.XMLHTTP
映射到Microsoft.XMLHTTP.1.0
HKEY_CLASSES_ROOT\Msxml2.XMLHTTP
映射到Msxml2.XMLHTTP.3.0
。试试晚一点的
使用xmlhttp尝试这种方法。编辑url的等。如果它似乎工作注释出如果/结束如果转储信息,即使看起来工作。它是vbscript,但vbscript在vb6中工作
On Error Resume Next
Set File = WScript.CreateObject("Microsoft.XMLHTTP")
File.Open "GET", "http://www.microsoft.com/en-au/default.aspx", False
'This is IE 8 headers
File.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; .NET4.0E; BCD2000; BCD2000)"
File.Send
If err.number <> 0 then
line =""
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "Error getting file"
Line = Line & vbcrlf & "=================="
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "Error " & err.number & "(0x" & hex(err.number) & ") " & err.description
Line = Line & vbcrlf & "Source " & err.source
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "HTTP Error " & File.Status & " " & File.StatusText
Line = Line & vbcrlf & File.getAllResponseHeaders
wscript.echo Line
Err.clear
wscript.quit
End If
On Error Goto 0
Set BS = CreateObject("ADODB.Stream")
BS.type = 1
BS.open
BS.Write File.ResponseBody
BS.SaveToFile "c:\users\test.txt", 2
还要注意,在锁定发生之前,可以调用任何特定XMLHTTP对象的次数是有限制的。如果发生这种情况,并且在调试代码时发生了这种情况,只需更改为不同的xmlhttp对象,此代码的目的是显示错误处理。这是vbscript,但vbscript可复制到VBA中。错误可能会告诉您原因 总是在文件(用户删除它们)、网络或internet(它们不保证工作)和注册表读取(用户删除它们)上出错。 URL必须100%正确。与浏览器不同,没有修复URL的代码 我的程序的目的是获取错误详细信息 如何获得正确的URL是在浏览器中键入URL,进行导航,并且正确的URL通常位于地址栏中。另一种方法是使用链接等的属性来获取URL 另外
Microsoft.XMLHTTP
映射到Microsoft.XMLHTTP.1.0
HKEY_CLASSES_ROOT\Msxml2.XMLHTTP
映射到Msxml2.XMLHTTP.3.0
。试试晚一点的
使用xmlhttp尝试这种方法。编辑url的等。如果它似乎工作注释出如果/结束如果转储信息,即使看起来工作。它是vbscript,但vbscript在vb6中工作
On Error Resume Next
Set File = WScript.CreateObject("Microsoft.XMLHTTP")
File.Open "GET", "http://www.microsoft.com/en-au/default.aspx", False
'This is IE 8 headers
File.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; .NET4.0E; BCD2000; BCD2000)"
File.Send
If err.number <> 0 then
line =""
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "Error getting file"
Line = Line & vbcrlf & "=================="
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "Error " & err.number & "(0x" & hex(err.number) & ") " & err.description
Line = Line & vbcrlf & "Source " & err.source
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "HTTP Error " & File.Status & " " & File.StatusText
Line = Line & vbcrlf & File.getAllResponseHeaders
wscript.echo Line
Err.clear
wscript.quit
End If
On Error Goto 0
Set BS = CreateObject("ADODB.Stream")
BS.type = 1
BS.open
BS.Write File.ResponseBody
BS.SaveToFile "c:\users\test.txt", 2
还要注意,在锁定发生之前,可以调用任何特定XMLHTTP对象的次数是有限制的。如果发生这种情况,并且在调试代码时发生了这种情况,只需更改为不同的xmlhttp对象,此代码的目的是显示错误处理。这是vbscript,但vbscript可复制到VBA中。错误可能会告诉您原因 总是在文件(用户删除它们)、网络或internet(它们不保证工作)和注册表读取(用户删除它们)上出错。 URL必须100%正确。与浏览器不同,没有修复URL的代码 我的程序的目的是获取错误详细信息 如何获得正确的URL是在浏览器中键入URL,进行导航,并且正确的URL通常位于地址栏中。另一种方法是使用链接等的属性来获取URL 另外
Microsoft.XMLHTTP
映射到Microsoft.XMLHTTP.1.0
HKEY_CLASSES_ROOT\Msxml2.XMLHTTP
映射到Msxml2.XMLHTTP.3.0
。试试晚一点的
使用xmlhttp尝试这种方法。编辑url的等。如果它似乎工作注释出如果/结束如果转储信息,即使看起来工作。它是vbscript,但vbscript在vb6中工作
On Error Resume Next
Set File = WScript.CreateObject("Microsoft.XMLHTTP")
File.Open "GET", "http://www.microsoft.com/en-au/default.aspx", False
'This is IE 8 headers
File.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; .NET4.0E; BCD2000; BCD2000)"
File.Send
If err.number <> 0 then
line =""
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "Error getting file"
Line = Line & vbcrlf & "=================="
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "Error " & err.number & "(0x" & hex(err.number) & ") " & err.description
Line = Line & vbcrlf & "Source " & err.source
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "HTTP Error " & File.Status & " " & File.StatusText
Line = Line & vbcrlf & File.getAllResponseHeaders
wscript.echo Line
Err.clear
wscript.quit
End If
On Error Goto 0
Set BS = CreateObject("ADODB.Stream")
BS.type = 1
BS.open
BS.Write File.ResponseBody
BS.SaveToFile "c:\users\test.txt", 2
还要注意,在锁定发生之前,可以调用任何特定XMLHTTP对象的次数是有限制的。如果发生这种情况,并且在调试代码时发生了这种情况,只需更改为不同的xmlhttp对象,此代码的目的是显示错误处理。这是vbscript,但vbscript可复制到VBA中。错误可能会告诉您原因 总是在文件(用户删除它们)、网络或internet(它们不保证工作)和注册表读取(用户删除它们)上出错。 URL必须100%正确。与浏览器不同,没有修复URL的代码 我的程序的目的是获取错误详细信息 如何获得正确的URL是在浏览器中键入URL,进行导航,并且正确的URL通常位于地址栏中。另一种方法是使用链接等的属性来获取URL 另外
Microsoft.XMLHTTP
映射到Microsoft.XMLHTTP.1.0
HKEY_CLASSES_ROOT\Msxml2.XMLHTTP
映射到Msxml2.XMLHTTP.3.0
。试试晚一点的
使用xmlhttp尝试这种方法。编辑url的等。如果它似乎工作注释出如果/结束如果转储信息,即使看起来工作。它是vbscript,但vbscript在vb6中工作
On Error Resume Next
Set File = WScript.CreateObject("Microsoft.XMLHTTP")
File.Open "GET", "http://www.microsoft.com/en-au/default.aspx", False
'This is IE 8 headers
File.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; .NET4.0E; BCD2000; BCD2000)"
File.Send
If err.number <> 0 then
line =""
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "Error getting file"
Line = Line & vbcrlf & "=================="
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "Error " & err.number & "(0x" & hex(err.number) & ") " & err.description
Line = Line & vbcrlf & "Source " & err.source
Line = Line & vbcrlf & ""
Line = Line & vbcrlf & "HTTP Error " & File.Status & " " & File.StatusText
Line = Line & vbcrlf & File.getAllResponseHeaders
wscript.echo Line
Err.clear
wscript.quit
End If
On Error Goto 0
Set BS = CreateObject("ADODB.Stream")
BS.type = 1
BS.open
BS.Write File.ResponseBody
BS.SaveToFile "c:\users\test.txt", 2
还要注意,在锁定发生之前,可以调用任何特定XMLHTTP对象的次数是有限制的。如果发生这种情况,并且在调试代码时发生了这种情况,只需更改为另一个xmlhttp对象,即可将API密钥作为POST请求的请求体的一部分发送。直接将查询参数添加到URL中,这应该会起作用
"https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=" & apiKey
然后需要使用“send”发送一个JSON编码的请求对象。对于get_survey_list,一个空对象({})将启动。您正在发送API密钥,作为POST请求的请求正文的一部分。直接将查询参数添加到URL中,这应该会起作用
"https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=" & apiKey
然后需要使用“send”发送一个JSON编码的请求对象。对于get_survey_list,一个空对象({})将启动。您正在发送API密钥,作为POST请求的请求正文的一部分。直接将查询参数添加到URL,然后