ruby on rails - Amazon Mechanical Turk - Rturk - RestClient:



我正在尝试设置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。

相关内容

  • 没有找到相关文章

最新更新