To use this library, you'll need first follow our account set-up instructions to set up your Mechanical Turk and AWS accounts to call the API.
Instantiating the client requires using a Session object from boto3 to authenticate. The boto3 docs describe how to manage your credentials in more detail.
First, install the library:
$ pip install mturk-crowd-beta-clientThen, from a Python interpreter or script, create your first task:
from mturk_crowd_beta_client import MTurkCrowdClient from boto3.session import Session import uuid # This examples assume you have a local AWS profile called # 'mturk-crowd-caller', but you can authenticate however you like, # including by directly passing in your access key and secret key. session = Session(profile_name='mturk-crowd-caller') # Create the client crowd_client = MTurkCrowdClient(session) # For this example, we'll give our task a random, unique name. For real # work, you'll probably want to pick a name based on your input source. task_name = 'my-test-task-' + uuid.uuid4().hex function_name = 'sentiment-analysis-test' # Create the task put_result = crowd_client.put_task(function_name, task_name, {'text': 'Everything is wonderful.'}) print('PUT response: {}'.format( {'status_code': put_result.status_code, 'task': put_result.json()})) # => PUT response: { # 'status_code': 201, # 'task': {'input': {'text': 'Everything is wonderful.'}, # 'problemDetails': None, # 'result': None, # 'state': 'processing', # 'taskName': 'my-test-task-73fbfb29f2bc451d9696d11103dcaf0e'} # } # Get the task we just created. Note that for a production (i.e., non-test) # task, we'd have to poll periodically until the task completed. get_result = crowd_client.get_task(function_name, task_name) print('GET response: {}'.format( {'status_code': get_result.status_code, 'task': get_result.json()})) # => GET response: { # 'status_code': 200, # 'task': {'input': {'text': 'Everything is wonderful.'}, # 'problemDetails': None, # 'result': {'sentiment': 'positive'} # 'state': 'completed', # 'taskName': 'my-test-task-73fbfb29f2bc451d9696d11103dcaf0e'} # }Check out our usage instructions and API documentation for more details about how to use the API and this client.