【问题标题】:How to send API request to AWS Mturk API (Signature V4) using R如何使用 R 向 AWS Mturk API (Signature V4) 发送 API 请求
【发布时间】:2019-06-01 05:17:04
【问题描述】:

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-日期”

$身体 [1] “1d67d950ce9a1f712609c9c9d794b210d8c78bc0334e54f0fdcb4fd46d65f3f5”

$规范 [1] "POST\n/\n\nhost:mturk-requester.us-east-1.amazonaws.com\nx-amz-date:20110909T233600Z\n\nhost;x-amz-date\n1d67d950ce9a1f712609c9c9d794b210d8c78bc0334e54f0fdcb4fd" >

$哈希 [1] "16814afb1f9c9c5094a8b3ede035365a687c68c7b6dcbe0f688aaeb8b6656f10"

【问题讨论】:

    标签: r amazon-web-services api


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-23
      • 1970-01-01
      • 2018-11-22
      • 2017-03-05
      • 2019-09-03
      • 2016-01-06
      • 1970-01-01
      • 2018-04-23
      相关资源
      最近更新 更多