我正在尝试设置Rturk,将一些工作外包给亚马逊的Mechanical Turk。当我尝试创建我的HITs
时,我在控制台中不断遇到以下错误:
RestClient::BadRequest: 400 Bad Request
当我复制 URL 并将其粘贴到浏览器中以获取响应时,我收到以下消息:
This user is not authorized to perform the requested operation
你们知道这里会发生什么吗?我正在关注 github 上的 rturk 文档。https://github.com/mdp/rturk 宝石是否可能必须更新?
RTurk.setup(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY_ID'], :sandbox => true)
hit = RTurk::Hit.create(
:title => "Sample turk",
:assignments_duration => 1.hour,
:expires_at => 1.day.from_now
) do |hit|
hit.lifetime = 1.day
hit.assignments = 1
hit.description = "Test description."
hit.keywords = "places, search, map, location"
hit.question(mturk-fb_path, :frame_height => 750)
hit.reward = reward
if approval_rate
hit.qualifications.add :approval_rate, { :gt => approval_rate }
end if abandoned_rate
hit.qualifications.add :abandoned_rate, { :lt => abandoned_rate }
end
if is_us
hit.qualifications.add :country, { :eql => "US" }
end
end
}
这里可能会发生几件事:
- 我不认为
:assignments_duration
和:expires_at
是有效的选择。您应该使用hit.duration
来指定工作人员在接受命中后必须完成命中的时间量,hit.lifetime
设置命中到期前的时间量。 - 这可能只是您帖子中的拼写错误,但
mturk-fb_path
不是有效的 ruby 变量名称。(不能使用破折号)
尝试从最简单的示例开始,一旦它工作,您就可以从中构建它。来自rturk的这个例子应该是一个好的开始:https://github.com/mdp/rturk#creating-hits。
另外,我绝对建议通读 mturk 文档以创建命中:http://docs.aws.amazon.com/AWSMechTurk/2011-10-01/AWSMturkAPI/ApiReference_CreateHITOperation.html。