Qualtrics - 将响应传递到 Javascript 以进行 API 调用
Qualtrics - Passing Response into Javascript for API Call
我在 Qualtrics 中进行了一项调查。在一个问题中,受访者提供了一个电子邮件地址。我需要使用 API 将该电子邮件地址发送给礼品卡提供商 (Giftbit)。我下面的代码位于 "End of Survey Element" 作为调查消息的自定义结束。
我正在尝试将受访者提供的电子邮件地址捕获为 HTML 中的管道文本 (${q://QID6/ChoiceTextEntryValue}),然后将该值传递给 JavaScript使用下面的 getEmailAddress 函数。然后,我在随后的 API 调用中将该值指定为 emailAddressText。
提前感谢您的建议 - 我已经对代码进行了几十次调整,但我没有想法。
Thank you for completing the survey.
<span id="EmailAddress" style="display: none;">${q://QID6/ChoiceTextEntryValue}</span>
<script>
function getEmailAddress() {
var emailAddressText=("EmailAddress").innerHTML;
}
var request = new XMLHttpRequest();
request.open('POST', 'https://testbedapp.giftbit.com/papi/v1/campaign');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer ACCESS_TOKEN');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
var body = {
'message': 'Thanks for completing the survey.',
'subject': ‘Here is your gift card!',
'contacts': [
{
'email': emailAddressText
}
],
'marketplace_gifts': [
{
'id': 1,
'price_in_cents': 5000
}
],
'expiry': '2018-01-01',
'id': 'clientProvidedGiftId_abc123'
};
request.send(JSON.stringify(body));
</script>
您永远不会调用 getEmailAddress 函数,即使您调用了 emailAddressText 也是该函数的本地函数(您不会 return 它)。
更好的方法是将电子邮件地址通过管道传输到您想要的脚本中(代替 span 标记和 getEmailAddress 函数):
'contacts': [
{
'email': '${q://QID6/ChoiceTextEntryValue}'
}
],
此外,您应该将其添加为 JavaScript,而不是带有脚本标签的问题的一部分。
我在 Qualtrics 中进行了一项调查。在一个问题中,受访者提供了一个电子邮件地址。我需要使用 API 将该电子邮件地址发送给礼品卡提供商 (Giftbit)。我下面的代码位于 "End of Survey Element" 作为调查消息的自定义结束。
我正在尝试将受访者提供的电子邮件地址捕获为 HTML 中的管道文本 (${q://QID6/ChoiceTextEntryValue}),然后将该值传递给 JavaScript使用下面的 getEmailAddress 函数。然后,我在随后的 API 调用中将该值指定为 emailAddressText。
提前感谢您的建议 - 我已经对代码进行了几十次调整,但我没有想法。
Thank you for completing the survey.
<span id="EmailAddress" style="display: none;">${q://QID6/ChoiceTextEntryValue}</span>
<script>
function getEmailAddress() {
var emailAddressText=("EmailAddress").innerHTML;
}
var request = new XMLHttpRequest();
request.open('POST', 'https://testbedapp.giftbit.com/papi/v1/campaign');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Bearer ACCESS_TOKEN');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
var body = {
'message': 'Thanks for completing the survey.',
'subject': ‘Here is your gift card!',
'contacts': [
{
'email': emailAddressText
}
],
'marketplace_gifts': [
{
'id': 1,
'price_in_cents': 5000
}
],
'expiry': '2018-01-01',
'id': 'clientProvidedGiftId_abc123'
};
request.send(JSON.stringify(body));
</script>
您永远不会调用 getEmailAddress 函数,即使您调用了 emailAddressText 也是该函数的本地函数(您不会 return 它)。
更好的方法是将电子邮件地址通过管道传输到您想要的脚本中(代替 span 标记和 getEmailAddress 函数):
'contacts': [
{
'email': '${q://QID6/ChoiceTextEntryValue}'
}
],
此外,您应该将其添加为 JavaScript,而不是带有脚本标签的问题的一部分。