Getting workerId by assignmentId

2020-07-11 16:52发布

问题:

In Amazon Mechanical Turk, when creating an External Question then it will send you each assignment like this:

http://tictactoe.amazon.com/gamesurvey.cgi?gameid=01523
&hitId=123RVWYBAZW00EXAMPLE
&assignmentId=123RVWYBAZW00EXAMPLE456RVWYBAZW00EXAMPLE

Surprisingly, it doesn't send me the workerId and I can't find any way to do this. The closest method is GetAssignmentsForHIT which only gives me the assignment already submitted but I need to render the assignment based on the worker history.

回答1:

A recent addition to the API is the GetAssignment call, which takes the assignment ID as an argument and will return the Worker ID inside the Assignment data structure.



回答2:

As msha points out, the sending of a workerID parameter to an ExternalQuestion page seems to be deprecated, or at least taken out of the latest version of the documentation.

However, a fellow researcher who's been using MTurk a lot says: "People seem to be using it in the forums. I would go ahead with it...if it ever actually disappears, I'm sure that the developer community will yell very loudly. :) "

I tried it empirically today (2011-08-19), and indeed a workerID is being sent to the ExternalQuestion page I set up on my own server, after the HIT has been accepted. This was in the sandbox. My ExternalQuestion page contained a Java Web Start button (as described here: http://download.oracle.com/javase/tutorial/deployment/deploymentInDepth/createWebStartLaunchButtonFunction.html ); I don't know if that made any difference.



回答3:

According to the MTurk docs here,

When a Worker accepts your HIT, you can get the ID of the Worker. If your HIT contains a Java Applet, an IFrame, or embedded binary data, the URL contains a value for the workerId. If your HIT does not contain these types of data, or if a Worker has not accepted the HIT, the workerId element doesn't appear.

Haven't tried to confirm this myself yet.