使用R进行DocumentDB Web API访问

时间:2016-05-08 06:58:49

标签: r azure-cosmosdb

尝试使用R和PostMan连接到documentDB Web API时出现以下问题。

在DocumentDB文档中,向Web API提问的方法是使用base64 hash编写Authorization标头。

在R中我试图计算签名并直接用邮递员测试标题。 但我每次都得到一个http 401。 这是我的R代码:

<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
<div id="test1">
  <div id="test2">
     Hello
  </div>
</div>
<div id="test3">
     World
</div>
<div id="test4">
    <div id="test5">
    </div>
    <div id="test6">
        <div id="test7">
        </div>
    </div>
</div>

&#34; key&#34;是门户网站的主要密钥。 然后,按照Azure文档,我的标题是:

ALTER VIEW invoice
AS
    SELECT COVERT(char(8), INV_DATE, 10) -- will get you dd-MM-yy (no century!)
    FROM dbo.v_cust_invoices

我将其粘贴到PostMan中,标题为x-ms-version,date和x-ms-date。

但它不起作用..

我现在被困住,有没有人有想法?我使用错误的R功能吗?错误的密钥,有没有办法获得有关不匹配的更多信息?

网络API响应是:

toHash <- enc2utf8("get\ncolls\ndbs/toto/colls/testtoto\nsun, 08 may 2016 06:43:05 gmt\n\n")
hash <- hmac(key, toHash, "sha256")
base64(hash)

1 个答案:

答案 0 :(得分:1)

我发现自己错了。

Azure门户中提供的令牌是base64编码的。因此必须对其进行解码:

RCurl::base64Decode(key, mode="raw")

以便将其与digest::hmac函数一起使用。还必须在此raw = TRUE函数中指定hmac