Net-Amazon-MechanicalTurk ----------------------------------------------------------------------------- Amazon Mechanical Turk SDK for Perl PREREQUISITES ----------------------------------------------------------------------------- * Perl 5.6.0+ Tested on Linux and Windows using cygwin and ActivePerl. * Required Modules * LWP * MIME::Base64 * Digest::HMAC_SHA1 * URI::Escape * XML::Parser (You may use XML::Parser::Lite as an alternative) * Optional Modules * Test::More - For running tests * Module::Build - For building, installing and testing * (Highly reccomended for ActivePerl) * IO::String - Used for templating. * DBI - Used in one of the samples. * DBD::SQLite2 - Used in one of the samples. INSTALLATION ----------------------------------------------------------------------------- NOTE: Below are four (4) different installation methods: 1. Interactive Intall 2. Windows ActivePerl Manual Installation 3. Traditional *nix Installation 4. HELP ME I'M NOT ROOT (1) and (2) should work on Windows. (1), (3), and (4) might work in *nix. Only one of these installation methods must be completed successfully. * Interactive Install Run the command "perl mturk_install.pl" to run the interactive installer. The installer will check module dependencies and try to install them for you. If you run this on ActivePerl it will use the ppm command to install the modules. On other systems it will try to use CPAN. The interactive installer is provided as a convenience. It may not work on all systems. If the installer uses CPAN, the installation script will be completely dependent on a working CPAN configuration. Some dependent modules (e.g. Digest::HMAC_SHA1) may also require a working C compiler and make utility. Note on CPAN: If you have not used CPAN before, you may be taken through CPAN configuration which is lengthy. Note on *nix: You may have issues if you run the installation script as a non-root user. See HELP ME I'M NOT ROOT. * Windows ActivePerl Manual Installation 1. Install the dependencies using the ppm command. (Module::Build is required for an Windows ActivePerl install) ppm install LWP ppm install MIME::Base64 ppm install Digest::HMAC_SHA1 ppm install URI::Escape ppm install XML::Parser ppm install Module::Build ppm install Test::More ppm install IO::String ppm install DBI ppm install DBD::SQLite2 2. Unpack the distribution and go to the distribution directory in a DOS command line. 3. Run the following commands: perl Build.PL Build Build install 4. Run the following command to configure your MechanicalTurk access keys: perl -MNet::Amazon::MechanicalTurk::Configurer -e configure (This command will create a configuration file named mturk.properties in your user home directory.) * Traditional *nix Installation * Using CPAN to install dependencies 1. Run the command "perl -MCPAN -e shell" to enter the CPAN shell. 2. Use the install command to install the dependencies. (Example of installing Module::Build) install Module::Build Note: See the section Required Modules and Optional Modules at the beginning of this document. You can check to see if a module already exists on your system by typing the command: perl -M -e 1 3. Build and install the MechanicalTurk module using 1 of the following methods. Using the traditional perl build process. perl Makefile.PL make make test make install Alternatively, to install with Module::Build, you can use the following commands: perl Build.PL ./Build ./Build test ./Build install 4. Run the following command to configure your MechanicalTurk access keys: perl -MNet::Amazon::MechanicalTurk::Configurer -e configure (This command will create a configuration file named mturk.properties in your user home directory.) * HELP ME I'M NOT ROOT So you are on a *nix system and you are not root and you are having problems installing perl modules. You can build and install perl modules into a local directory. You can then set an environment variable PERL5LIB to point to this directory, so your scripts pick up the modules from there. The following text shows the command it took on a particular system to get the MechanicalTurk module working. Some systems and/or versions of perl may need more or less items installed. These commands also reference specific versions of modules on CPAN. These are not the required versions. These were just the latest versions present on CPAN at the time this document was originally written. For any module download url listed, you may check the parent directory for new versions on CPAN. (Note: This install already had LWP, MIME::Base64, URI::Escape, XML::Parser and DBI. These commands were only for the modules missing.) You can check to see if you have a module or not by typing the command: perl -M -e 1 Here are the commands that were needed to run: mkdir -p $HOME/perl/lib mkdir -p $HOME/perl/man/man1 mkdir -p $HOME/perl/man/man3 PERL5LIB=$HOME/perl/lib export PERL5LIB wget http://www.cpan.org/modules/by-module/Digest/Digest-1.15.tar.gz gunzip < Digest-1.15.tar.gz | tar xf - cd Digest-1.15 perl Makefile.PL LIB=$HOME/perl/lib INSTALLMAN1DIR=$HOME/perl/man/man1 INSTALLMAN3DIR=$HOME/perl/man/man3 make make test make install cd .. wget http://www.cpan.org/modules/by-module/Digest/Digest-SHA1-2.11.tar.gz gunzip < Digest-SHA1-2.11.tar.gz | tar xf - cd Digest-SHA1-2.11 perl Makefile.PL LIB=$HOME/perl/lib INSTALLMAN1DIR=$HOME/perl/man/man1 INSTALLMAN3DIR=$HOME/perl/man/man3 make make test make install cd .. wget http://www.cpan.org/modules/by-module/IO/IO-String-1.08.tar.gz gunzip < IO-String-1.08.tar.gz | tar xf - cd IO-String-1.08 perl Makefile.PL LIB=$HOME/perl/lib INSTALLMAN1DIR=$HOME/perl/man/man1 INSTALLMAN3DIR=$HOME/perl/man/man3 make make test make install cd .. wget http://www.cpan.org/modules/by-module/DBD/DBD-SQLite2-0.33.tar.gz gunzip < DBD-SQLite2-0.33.tar.gz | tar xf - cd DBD-SQLite2-0.33 perl Makefile.PL LIB=$HOME/perl/lib INSTALLMAN1DIR=$HOME/perl/man/man1 INSTALLMAN3DIR=$HOME/perl/man/man3 make make test make install cd .. gunzip -c Net-Amazon-MechanicalTurk-0.01.tar.gz | tar xvf - cd Net-Amazon-MechanicalTurk-0.01 perl Makefile.PL LIB=$HOME/perl/lib INSTALLMAN1DIR=$HOME/perl/man/man1 INSTALLMAN3DIR=$HOME/perl/man/man3 make make test make install cd .. SAMPLES ----------------------------------------------------------------------------- The samples directory in this distribution has various scripts, showing how to call the MechanicalTurk API, use the bulk loading features and hooking up a database connection to the bulk loading API. NOTE: Samples should be run from within their own directories. SUPPORT AND DOCUMENTATION ----------------------------------------------------------------------------- After installing, you can find documentation for this module with the perldoc command. perldoc Net::Amazon::MechanicalTurk Please see the developer guide for an API reference: http://docs.amazonwebservices.com/AWSMechanicalTurkRequester/2007-06-21/ You should also configure your access keys for authentication. Run the following command to configure your access keys. perl -MNet::Amazon::MechanicalTurk::Configurer -e configure You can also look for information at: http://requester.mturk.com/mturk/welcome http://developer.amazonwebservices.com/connect/forum.jspa?forumID=11 COPYRIGHT AND LICENCE ----------------------------------------------------------------------------- Copyright (c) 2007 Amazon Technologies, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.