2017-03-24 10 views
0

私はQualtricsで調査しています。 1つの質問では、回答者は電子メールアドレスを提供します。その電子メールアドレスを、そのAPIを使用してギフトカードプロバイダ(Giftbit)に送信する必要があります。以下の私のコードは、調査メッセージのカスタム終了として "End of Survey Element"に配置されています。Qualtrics - APIコールのJavascriptへの応答の受け渡し

回答者提供の電子メールアドレスをHTMLでパイプテキスト($ {q:// QID6/ChoiceTextEntryValue})として取得し、その値をJavaScriptに渡すには、以下のgetEmailAddress関数を使用します。次に、その値をemailAddressTextとして、それに続くAPI呼び出しで割り当てます。

あなたの提案をお寄せいただきありがとうございます。私はコードを数十回微調整してしまいました。私はアイデアがありません。

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 $50 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> 

答えて

0

あなたはgetEmailAddress関数を呼び出すことはありません、あなたがした場合でも、emailAddressTextは(あなたがそれを返さない)、その関数に対してローカルです。

良い方法は、あなたがそれ(spanタグとgetEmailAddress機能の代わりに)したいスクリプトにちょうどパイプにメールアドレスのようになります。

'contacts': [ 
    { 
     'email': '${q://QID6/ChoiceTextEntryValue}' 
    } 
    ], 

また、あなたのJavaScriptとしてこれを追加する必要がありますスクリプトタグの質問の一部ではありません。

関連する問題