Net::Amazon::MechanicalTurk is an Amazon Mechanical Turk SDK for Perl.
CONFIGURATION
Configuring your access keys and web service urls. MechanicalTurk needs access keys for authentication. If you do not specify all of the relevant attributes, The file mturk.properties is read from your home directory for this information.
Run the command:
perl -MNet::Amazon::MechanicalTurk::Configurer -e configure
to help you create this file.
SYNOPSIS
Module for MechanicalTurk API.
use Net::Amazon::MechanicalTurk;
# Create a new MechTurk client
my $mturk = Net::Amazon::MechanicalTurk- >new();
# Create a new MechTurk client without using mturk.properties
my $mturk = Net::Amazon::MechanicalTurk- >new(
serviceUrl = > 'http://mechanicalturk.sandbox.amazonaws.com/?Service=AWSMechanicalTurkRequester',
serviceVersion = > '2007-06-21',
accessKey = > '1AAAAA1A1AAAAA11AA11',
secretKey = > '1aAaAAAAAAAA+aAaAaaaaaaAAA/AAAAAA1a1aAaa'
);
# Get your balance
my $balance = $mturk- >GetAccountBalance- >{AvailableBalance}[0]{Amount}[0];
print "Your balance is $balancen";
# CreateHIT
my $question = "Tell me something interesting.";
my $questionXml = < < END_XML;
< ?xml version="1.0" encoding="UTF-8"? >
< QuestionForm xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2005-10-01/QuestionForm.xsd" >
< Question >
< QuestionIdentifier >1< /QuestionIdentifier >
< QuestionContent >
< Text >$question< /Text >
< /QuestionContent >
< AnswerSpecification >
< FreeTextAnswer/ >
< /AnswerSpecification >
< /Question >
< /QuestionForm >
END_XML
my $result = $mturk- >CreateHIT(
Title = > 'Answer a question',
Description = > 'Test HIT from Perl',
Keywords = > 'hello, world',
Reward = > {
CurrencyCode = > 'USD',
Amount = > 0.01
},
RequesterAnnotation = > 'Test Hit',
AssignmentDurationInSeconds = > 60 * 60,
AutoApprovalDelayInSeconds = > 60 * 60 * 10,
MaxAssignments = > 1,
LifetimeInSeconds = > 60 * 60,
Question = > $questionXml
);
printf "Created HIT:n";
printf "HITId: %sn", $result- >{HITId}[0];
printf "HITTypeId: %sn", $result- >{HITTypeId}[0];
# Approve all submitted assignments
my $hits = $mturk- >GetReviewableHITsAll;
while (my $hit = $hits- >next) {
my $hitId = $hit- >{HITId}[0];
my $assignments = $mturk- >GetAssignmentsForHITAll(
HITId = > $hitId,
AssignmentStatus = > 'Submitted'
);
while (my $assignment = $assignments- >next) {
my $assignmentId = $assignment- >{AssignmentId}[0];
$mturk- >ApproveAssignment( AssignmentId = > $assignmentId );
}
}
Product's homepage
Requirements:
· Perl
What's New in This Release: [ read full changelog ]
· Require modern version of LWP