Как отправить запрос API в AWS Mturk API (Signature V4) с помощью R - PullRequest
0 голосов
/ 22 мая 2019

Пакет MturkR (https://github.com/cloudyr/MTurkR) перестанет работать с 1 июня 2019 г., так как AWS устарел унаследованным API, и этот пакет настроен только для унаследованного API.

Я полагаю, что многим другим нужен способ вызывать API MTurk через R, поскольку я не знаю ни одного другого пакета R, который может это сделать.

Может ли кто-нибудь предоставить пример кода, как сделать вызов нового API mturk через R? Он использует Signature Version 4, которую, я знаю, можно реализовать с помощью пакета aws.signature для R, но я не могу понять, как сгенерировать и отправить запрос в API mturk. Возможно, у меня нет правильно настроенного запроса, поэтому пример, который работает, был бы фантастическим для меня и других. В этом примере я пытаюсь запросить операцию 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, и я не знаю, нужны ли еще какие-либо функции для завершения подписи.

Ответ:

г $ headers [1] "host; x-amz-date"

$ тела [1] "1d67d950ce9a1f712609c9c9d794b210d8c78bc0334e54f0fdcb4fd46d65f3f5"

$ канонических [1] "POST \ п / \ п \ nhost: mturk-requester.us-east-1.amazonaws.com \ пх-AMZ-дата: 20110909T233600Z \ N \ nhost; х-AMZ-дата \ n1d67d950ce9a1f712609c9c9d794b210d8c78bc0334e54f0fdcb4fd46d65f3f5" * 1 025 *

$ хэш [1] "16814afb1f9c9c5094a8b3ede035365a687c68c7b6dcbe0f688aaeb8b6656f10"

1 Ответ

1 голос
/ 01 июня 2019

У меня был тот же вопрос. Кто-то опубликовал свою обновленную версию MTurkR на Github: https://github.com/cloudyr/pyMTurkR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...