Documentibデータベース(なし)を使用せずにデータを取得したいのですが、これはIonic Appに実装する必要があるためです。Postman出力のDocumentDB REST API
私はマイクロソフトのthisのドキュメントに続き、このドキュメントのコードと全く同じコードを使用しています(Browserify)。
接続をテストするために、私はすべての必要なヘッダを入力するPostmanを使用します。 master-key
については、primary-key
をDocumentDBから使用しました。
{
"code": "Unauthorized",
"message": "The input authorization token can't serve the request. Please check that the expected payload is built as per the protocol, and check the key being used. Server used the following payload to sign: 'post\ndbs\n\nthu, 29 sep 2016 10:46:49 gmt\n\n'\r\nActivityId: f7ce147d-6ff9-4e4f-aaff-39d3769cc399"
}
は私が間違って何をやっている:
問題はDocumentDBからの応答は次のよう常にであること、ありますか?
JSは、次のようになります。
var Buffer = require('buffer/').Buffer;
var crypto = require("crypto");
var headers = new Array();
headers['x-ms-date'] = "Thu, 29 Sep 2016 17:50:49 GMT";
function getAuthorizationTokenUsingMasterKey(verb, resourceType, resourceId, headers, masterKey) {
var key = new Buffer(masterKey, "base64");
var text = (verb || "").toLowerCase() + "\n" +
(resourceType || "").toLowerCase() + "\n" +
(resourceId || "") + "\n" +
(headers["x-ms-date"] || "").toLowerCase() + "\n" +
"" + "\n";
var body = new Buffer(text, "utf8");
var signature = crypto.createHmac("sha256", key).update(body).digest("base64");
var MasterToken = "master";
var TokenVersion = "1.0";
return "type=" + MasterToken + "&ver=" + TokenVersion + "&sig=" + signature;
}
console.log(getAuthorizationTokenUsingMasterKey("POST", "docs", "test_collection_1", headers, "CJTR8odBZJklUUixWPZDRdTXqJrfLpfhTLk...wO2oPHgPyjuBkbhrjTlvKhRxsAAeig=="));
そしてポストマンの私のヘッダは以下のようになります。
POST request to https://example-database.documents.azure.com/dbs
x-ms-documentdb-isquery: True
x-ms-date: Thu, 29 Sep 2016 17:50:49 GMT
authorization: type%3Dmaster%26ver%3D1.0%26sig%3D3240f1fa7a05...cf845c746bcbb5a1
x-ms-version: 2015-12-16
x-ms-query-enable-crosspartition: true
Accept: application/json
Content-Type: application/query+json
こんにちはJohnさん、まだ更新はありますか? –
あなたはこれまでどのようにこれを見つけましたか?ここでも同様の問題があります。 – americanslon