Я новичок в Access и в настоящее время работаю менеджером системы данных в исследовательской лаборатории по ВИЧ. Мы используем Qualtrics для создания опросов, которые участники могут проводить в Интернете, и мы используем Access для вызова API Qualtrics, чтобы добавлять участников в панель контактов Qualtrics, автоматически генерировать для них ссылки на опросы, отправлять ссылки на рассылку опросов участникам и сохранять их ответы в экспортированных файлах. ,
Вот ссылка на документацию по API Qualtrics: https://api.qualtrics.com/
Я перенесу всю функцию Qualtrics в v3 и перейду к этому аргументу времени выполнения Не является необязательной ошибкой при попытке создать ссылки на распространение опроса для участников и отправить им электронные письма со ссылками на опрос.
Вот ссылка на документацию API для функции Qualtrics, над которой я работаю - CreateSurveyDistributionLinks:
https://api.qualtrics.com/reference#distribution -create-1
https://api.qualtrics.com/reference#email -mailing-list
Ниже показан мой код:
Public Function createSurveyDistributionLinks(strSubject As String, _
strMessageID As String, strRecipients As String, strSurveyID As String, _
dtSendDate As Date, dtExpirationDate As Date)
'note: this function does not contain message feature as it is not
' used in 1KS. Can add for other uses by including a dicMessage object
Dim strURL As String
Dim JSON As Object
Dim dicMessage As Dictionary
Dim dicHeader As Dictionary
Dim strBodyJson As String
Dim strFromEmail As String
Dim strFromName As String
Me.initObject
strURL = "https://az1.qualtrics.com/API/v3/distributions"
strFromEmail = "day2day%40chestnyc.org"
strFromName = "day2day"
strFromName = Replace(strFromName, " ", "%20") 'Convert spaces
strSubject = Replace(strSubject, " ", "%20") 'Convert spaces
Set dicHeader = New Dictionary
dicHeader("fromEmail") = strFromEmail
dicHeader("fromName") = strFromName
dicHeader("subject") = strSubject
Set dicMessage = New Dictionary
dicMessage("messageId") = strMessageID
dicMessage("libraryId") = strLibID
dicMessage("header") = dicHeader
Set dicBody = New Dictionary
dicBody("recipients") = strRecipients
dicBody("surveyId") = strSurveyID
dicBody("sendDate") = formatQualtricsTimes(dtSendDate)
dicBody("expirationDate") = formatQualtricsTimes(Nz(dtExpirationDate, "2050-01-01 00:00:00"))
dicBody("message") = dicMessage
strBodyJson = JsonConverter.ConvertToJson(dicBody)
Debug.Print strBodyJson
With xmlhttprequester
.Open "POST", strURL
.setRequestHeader "X-API-TOKEN", strToken
.setRequestHeader "Content-Type", "application/json"
.send strBodyJson
.waitForResponse
If InStr(.responseText, "EMD_") > 0 Then
'it worked!
Set JSON = JsonConverter.ParseJson(.responseText)
Dim strrand As String
createSurveyDistributionLinks = JSON("result")("id")
Debug.Print JSON("result")("id")
Else
Debug.Print "an error has occurred" & vbNewLine & .responseText
createSurveyDistributionLinks = "false"
End If
End With
End Function
Вот строка, где я обнаружил ошибку во время выполнения:
strDistributionID = oQual.createSurveyDistributionLinks(strSubject, _
strMessageID, strRecipientID, strSurveyID, CStr(dtExpTime), CStr(dtTime))
Я был бы очень признателен за все ваши идеи, очень надеюсь, что мой код работает !!
Best, Jess