如何使用R.如何将API请求发送到AWS MTURK API(签名V4)



MTURKR软件包(https://github.com/cloudyr/mturkr(将在2019年6月1日停止工作,因为AWS正在弃用传统API,并且此软件包仅配置为遗产API。

我想许多其他人将需要一种方法来通过R进行呼叫MTURK API,因为我不知道其他可以执行此操作的R软件包。

任何人都可以提供一些示例代码,以了解如何通过R呼叫新的MTURK API?它使用签名版本4,我知道可以使用RAWS.Signature软件包实现,但我不知道如何生成并将请求发送到MTURK API。可能我没有正确配置的请求,因此,一个示例对我自己和他人来说都是很棒的。在此示例中,我试图请求getAssignment操作(https://docs.aws.amazon.com/awsmechturk/latest/apsmturkapi/apireference_getAssignmentoperation.html(。

我尝试使用AWS.Signature软件包来生成和发送请求,但没有成功。

library(aws.signature)

hdrs <- list( Host = "mturk-requester.us-east-1.amazonaws.com",
             `x-amz-date` = "20110909T233600Z"
                 )
hdrs
r <- canonical_request(verb = "POST",
                  canonical_uri="/",
                  query_args=list(),
                  canonical_headers=hdrs,
                  request_body='
                  { 
                  "AssignmentId": "3ZURAPD288NZQKK965W2FVL02P6F17"
                }')
r

这生成了规范请求的文本,但我不知道如何将其发送给API,我不知道是否需要任何功能来完成签名。

响应:

r $ headers [1]"主机; x-amz-date"

$身体[1]" 1D67D950CE9A1F712609C9C9C9D794B210D8C78BC0334E54F0FDCB4FDCB4FD46D65F3F5"

$ canonical>

$哈希[1]" 16814AFB1F9C5094A8B3EDE035365A687C68C7B6DCBE0F688AAEB8B8B6656F10"

我也有同样的问题。有人将其更新的MTURKR版本发布给GitHub:https://github.com/cloudyr/pymturkr

最新更新