Created
November 3, 2012 23:28
-
-
Save esbullington/4009280 to your computer and use it in GitHub Desktop.
Python script to reverse MTurk rejection using boto library and M2Crypto
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import sys | |
# We use M2Crypto here because MTurk API does not presently allow use of IAM keys, making SSL essential | |
# Adapted from script by Heikki Toivonen: | |
# http://www.heikkitoivonen.net/blog/2009/10/12/using-m2crypto-with-boto-secure-access-to-amazon-web-services/ | |
from M2Crypto import httpslib, SSL | |
from boto.mturk.connection import MTurkConnection | |
AWS_ACCESS_KEY = "AWSKEYHERE" | |
AWS_SECRET_ACCESS_KEY = "SECRETKEYHERE" | |
REASON =""" | |
Put reason for the reversal here | |
""" | |
ASSIGNMENT_ID = "ASSIGNMENT_ID_HERE_NOT_HIT_ID" | |
def https_connection_factory(host, port=None, strict=0, **ssl): | |
"""HTTPS connection factory that creates secure connections | |
using M2Crypto.""" | |
ctx = SSL.Context('tlsv1') | |
ctx.set_verify(SSL.verify_peer | SSL.verify_fail_if_no_peer_cert, depth=9) | |
if ctx.load_verify_locations('cacert.pem') != 1: | |
raise Exception('No CA certs') | |
return httpslib.HTTPSConnection(host, port=port, strict=strict, | |
ssl_context=ctx) | |
def create_connection(aws_access_key_id, aws_secret_access_key): | |
"""Create MTurk connection.""" | |
conn = MTurkConnection(aws_access_key_id=aws_access_key_id, | |
aws_secret_access_key=aws_secret_access_key, | |
https_connection_factory=(https_connection_factory, ())) | |
return conn | |
if __name__ == '__main__': | |
# Sample usage | |
conn = create_connection(AWS_ACCESS_KEY, AWS_SECRET_ACCESS_KEY) | |
try: | |
conn.approve_rejected_assignment(ASSIGNMENT_ID, REASON) | |
except EXCEPTION, e: | |
print e |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment