- Posts: 40
- Thank you received: 6
Ask the community, share ideas, and connect with other LimeSurvey users!
Sub sessionkey_test() Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") URL = "https://INSERT-YOUR-SITE.COM/limesurvey/remotecontrol" objHTTP.Open "POST", URL, False objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.setRequestHeader "Content-type", "application/json" objHTTP.Send ("get_session_key(USERNAME,PASSWORD)") 'objHTTP.Send ("USERNAME,PASSWORD,get_session_key()") '^ i've tried this way also Debug.Print (objHTTP.Status) Debug.Print (objHTTP.responseText) End Sub
Sub sessionkey_JSON () Dim limeuser As String, limepass As String, limeurl As String, URL As String, sendtext as string limeurl = "https://YOURDOMAIN/limesurvey/index.php" limeuser = "USERNAME" limepass = "PASSWORD" Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") URL = limeurl + "/admin/remotecontrol" objHTTP.Open "POST", URL, False objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.setRequestHeader "Content-type", "application/json" sendtext = "{""method"":""get_session_key"",""params"": [""" + limeuser + """,""" + limepass + """],""id"": 1}" objHTTP.Send (sendtext) Debug.Print (objHTTP.Status) Debug.Print (objHTTP.responseText) End Sub Sub sessionkey_XML () Dim limeuser As String, limepass As String, limeurl As String, URL As String, sendtext as string limeurl = "https://YOURDOMAIN/limesurvey/index.php" limeuser = "USERNAME" limepass = "PASSWORD" Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") URL = limeurl + "/admin/remotecontrol" objHTTP.Open "POST", URL, False objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.setRequestHeader "Content-type", "application/json" sendtext = "<methodCall><methodName>get_session_key</methodName><params><param><value><string>" + limeuser + "</string></value></param><param><value><string>" + limepass + "</string></value></param></params></methodCall>" objHTTP.Send (sendtext) Debug.Print (objHTTP.Status) Debug.Print (objHTTP.responseText) End Sub
limeurl = "https://YOURDOMAIN/limesurvey/index.php" limesessionkey = "SESSIONKEY" limesid = "SID" limedoctype = "csv" 'xls, csv, json limelang = "en" 'ru limecompletionstatus = "complete" 'complete,incomplete, all sendtext = "<methodCall><methodName>export_responses</methodName><params><param><value><string>" + limesessionkey + "</string></value></param><param><value><int>" + limesid + "</int></value></param><param><value><string>" + limedoctype + "</string></value></param><param><value><string>" + limelang + "</string></value></param><param><value><string>" + limecompletionstatus + "</string></value></param></params></methodCall>"
SendText = "<methodCall><methodName>export_responses</methodName><params><param><value><string>" + LimeSessionKey + "</string></value></param><param><value><int>" + limeSID + "</int></value></param><param><value><string>" + LimeDocType + "</string></value></param><param><value><string>" + LimeLang + "</string></value></param><param><value><string>" + LimeCompletionStatus + "</string></value></param></params></methodCall>" Resp = SendPOSTRequest(Url, SendText)'this function return objHTTP.responseText as string Resp = FindAndTrim(Resp, "<string>", "</string>")'FindAndTrim("12345","1","4") return "23" RespUnencode = Decode64(Resp)'i've found this function here: https://www.vbforums.com/showthread.php?379072-VB-Fast-Base64-Encoding-and-Decoding Call SaveTextToFile(LimeFileName, RespUnencode)'subprocedure that save base64 unencoded text to file