在R中将cURL转换为httr

时间:2018-06-27 12:59:24

标签: r api curl httr zendesk

与Zendesk API通信时,我无法将cURL请求转换为httr发布请求。 我已经成功地从API中提取了数据,但到目前为止,发布仍然存在问题。

我已经与Zendesk的API支持人员进行了交谈,但不幸的是,他们没有R方面的经验,因此无法告诉我我的脚本是否错误。

我得到的cURL示例如下(替换了所有敏感信息):

curl https://{subdomain}.zendesk.com/api/v2/nps/surveys/{survey_id}/invitations.json  -d '{"invitation": {"recipients": [{"name": "Ed C", "email": "example@subdomain.com", "language": "en-US"}]}}' 
    -H "Content-Type: application/json" 
    -v -u {your_email}/token:{your_api_token} -X POST

我的cURL知识非常有限,但是我相信我可以使用以下脚本正确地联系API(同样,所有敏感信息都已替换):

r2 <- POST('https://{subdomain}.zendesk.com/api/v2/nps/surveys/{survery_id}/invitations.json'
          ,add_headers(Authorization="Basic {api_key}")
          ,body  ='{"invitation": {"recipients": [{"name": "Ed C", "email": "example@subdomain.com", "language": "en-US"}]}}'
          ,encode='json'
)

我已经反复调查了Stack Overflow和其他消息来源,但是到目前为止,还没有发现适用于我的问题的情况。

谢谢。

1 个答案:

答案 0 :(得分:1)

经过反复尝试,我设法通过添加'content_type_json()'解决了我的问题。我不确定100%为何能正常工作,所以如果有人想澄清一下,我将不胜感激。

请参见下面的完整代码:

r2 <- POST('https://{subdomain}.zendesk.com/api/v2/nps/surveys/{survery_id}/invitations.json'
              ,add_headers(Authorization="Basic {api_key}")
              ,content_type_json()
              ,body  ='{"invitation": {"recipients": [{"name": "Ed C", "email": "example@subdomain.com", "language": "en-US"}]}}'
              ,encode='json'
    )