我是亚马逊和蟒蛇的新手,所以原谅我这是一个简单的解决方法。从boto创建命中后,我收到以下错误:
boto.mturk.connection.MTurkRequestError: MTurkRequestError: 200 OK
<?xml version="1.0"?>
<GetAssignmentsForHITResponse><OperationRequest><RequestId>17449b9f-b1f3-4d54-bbbd-974210ce1c1b</RequestId><Errors><Error><Code>AWS.BadClaimsSupplied</Code><Message>The specified claims are invalid. Based on your request, your signature should be generated using the following string: ActionGetAssignmentsForHITAWSAccessKeyId*********HITId?PageNumber1PageSize10SignatureVersion1SortDirectionAscendingSortPropertySubmitTimeTimestamp2014-01-06T22:20:05ZVersion2012-03-25. Check to make sure your system clock and timezone is not incorrect. Our current system time: 2014-01-06T22:20:05Z. (1389046806029 s)</Message><Data><Key>CustomerSignature</Key><Value>**************=</Value></Data><Data><Key>StringToSign</Key><Value>ActionGetAssignmentsForHITAWSAccessKeyIdAKIAIYFUA5FGNQKNWUSQHITId?PageNumber1PageSize10SignatureVersion1SortDirectionAscendingSortPropertySubmitTimeTimestamp2014-01-06T22:20:05ZVersion2012-03-25</Value></Data><Data><Key>SystemTime</Key><Value>2014-01-06T22:20:05Z</Value></Data></Error></Errors></OperationRequest></GetAssignmentsForHITResponse>
根据我的理解,问题是我的系统时钟和亚马逊系统时钟之间的不一致。我尝试在创建命中之前同步时钟,但错误仍然存在。
注意: 这次时间完美匹配,但有时间相隔1到3秒!如果它有帮助的话,这是我遇到麻烦的人群中的一部分。