2017-12-12 13 views
0

URL에 두 개 이상의 매개 변수가있는 경우 외부 질문을 만들기위한 MTurk의 외부 URL을 전달하는 방법.쿼리 매개 변수가있는 외부 MTurk의 URL

전직

<ExternalQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd"> 
<ExternalURL>https://s3.amazonaws.com/mturkexternalquestion/untitled.html?color=Red&product_asin=B0100RUSI6</ExternalURL> 
<FrameHeight>800</FrameHeight> 
</ExternalQuestion> 

나는 위의 외부 URL에 대한 XML 유효성 검사를 얻고있다. 하지만 URL에서 하나의 쿼리 매개 변수를 사용하면 올바르게 작동합니다.

답변

0

유효한 XML이 되려면 & 매개 변수 (예 : &)를 이스케이프 처리해야하기 때문입니다. 다음은 작동하는 루비 코드 샘플입니다.

require 'aws-sdk' 

aws_access_key_id = 'YOUR_ACCESS_ID' 
aws_secret_access_key = 'YOUR_SECRET_KEY' 
endpoint = 'https://mturk-requester-sandbox.us-east-1.amazonaws.com' 
region = 'us-east-1' 

# Uncomment this line to use in production 
# endpoint = 'https://mturk-requester.us-east-1.amazonaws.com' 

#credentials = Aws::Credentials.new(aws_access_key_id, aws_secret_access_key) 
mturk = Aws::MTurk::Client.new(endpoint: endpoint) #, credentials: credentials, region: region) 

QUESTION = <<END 
<ExternalQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd"> 
<ExternalURL>https://s3.amazonaws.com/mturkexternalquestion/untitled.html?color=Red&amp;product_asin=B0100RUSI6</ExternalURL> 
<FrameHeight>800</FrameHeight> 
</ExternalQuestion> 
END 

response = mturk.create_hit(title: "Example HIT", 
          description: "Example HIT", 
          lifetime_in_seconds: 60 * 60, 
          assignment_duration_in_seconds: 60 * 5, 
          max_assignments: 1, 
          reward: "0.25", 
          question: QUESTION) 

p "Your HIT is created. The HIT ID is #{response.hit.hit_id}"