获得BadClaims提供机械土耳其AWS - 流星

时间:2014-11-13 05:48:56

标签: javascript amazon-web-services meteor hmac mechanicalturk

我正在尝试在亚马逊机械土耳其人上创造一个Hit。我目前正在使用Meteor,因此我没有可以使用的SDK(我知道)。

为了创建点击,我使用以下代码:

Mturk.createHit = function(jobAttributes) {

    var operation = "CreateHIT";
    var service = "AWSMechanicalTurkRequester";
    var timestamp = moment().toISOString();
    var encoded = CryptoJS.HmacSHA256(service + operation + timestamp, process.env.SECRET_ACCESS_KEY).toString();

    var hitResponse = Meteor.http.get(
        "https://mechanicalturk.sandbox.amazonaws.com",
        {
            params: {
                Service: service,
                AWSAccessKeyId: process.env.ACCESS_KEY_ID,
                Version: "2013-11-15",
                Operation: operation,
                Signature: encoded,
                Timestamp: timestamp,
                Title: 'Survey',
                Description: 'Survey Description',
                Reward: {
                    Amount: 5,
                    CurrencyCode: 'USD'
                }
            }
        }
    );

    console.log(hitResponse);
}

每次提交时,都会收到以下错误:

  

AWS.BadClaimsSupplied指定的声明无效。基于   您的请求,您的签名应使用以下内容生成   string:AWSMechanicalTurkRequesterCreateHITs2014-11-13T05:41:31.357Z。   检查以确保您的系统时钟和时区不正确。   我们当前的系统时间:2014-11-13T05:41:31Z。

我认为错误来自于不正确地创建我的签名,但我不确定如何继续。我尝试过使用base64编码,但这对我来说也没有用。有什么想法吗?

0 个答案:

没有答案