如何使用R

时间:2019-05-22 17:45:12

标签: r amazon-web-services api

MturkR软件包(https://github.com/cloudyr/MTurkR)将在2019年6月1日停止工作,因为AWS不再使用旧版API,并且仅针对旧版API配置了此软件包。

我想许多其他人将需要一种通过R来调用MTurk API的方法,因为我不知道有任何其他R包可以做到这一点。

任何人都可以提供一些示例代码来说明如何通过R调用新的mturk API吗?它使用签名版本4,我知道可以通过R的aws.signature包实现,但我不知道如何生成并将请求发送到mturk API。可能我没有正确配置请求,因此,一个对我自己和其他人都有效的示例。在此示例中,我尝试请求GetAssignment操作(https://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/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”

$ body [1]“ 1d67d950ce9a1f712609c9c9d794b210d8c78bc0334e54f0fdcb4fd46d65f3f5”

$ canonical [1]“ POST \ n / \ n \ nhost:mturk-requester.us-east-1.amazonaws.com \ nx-amz日期:20110909T233600Z \ n \ nhost; x-amz日期\ n1d67d950ce9a1f712609c9c9d794b210d8c78bc0334e54f0fdc46” >

$ hash [1]“ 16814afb1f9c9c5094a8b3ede035365a687c68c7b6dcbe0f688aaeb8b6656f10”

1 个答案:

答案 0 :(得分:0)

我有同样的问题。有人在Github上发布了他的MTurkR的更新版本:https://github.com/cloudyr/pyMTurkR