创建 Parse 安装对象 UWP winjs

Create Parse installation object UWP winjs

我在我的 UWP javascript 应用程序中使用 Parse javascript SDK。如快速入门中所述,我正在使用以下行初始化 Parse,

Parse.initialize("App_ID", "Javascript_Key");

但它不会在 Parse 仪表板中创建安装对象。此外,如文档中所述,

Installation data can only be modified by the client SDKs, the data browser, or the REST API.

我正在尝试按照一些答案来创建安装对象,在这里, 但我无法让它工作。关于如何创建安装对象的任何想法?谢谢

您首先需要为您的设备生成一个 "native" 安装 ID。您可能可以使用 Parse javascript 平台已经生成的那个,但是生成一个新的并不难。只需模仿 Parse 源代码中已经完成的工作即可:

function generateInstallationId(){
    function hexOctet() {
        return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
    }

    return hexOctet() + hexOctet() + '-' + hexOctet() + '-' + hexOctet() + '-' + hexOctet() + '-' + hexOctet() + hexOctet() + hexOctet();
}

然后构建正确的 xhr headers。由于我们模仿本机 Parse SDK 使用 REST 的方式,因此我们使用 dotNet 密钥或客户端密钥,而不是 javascript 密钥。

var xhrHeaders = {
    "Content-Type": "application/json",
    "X-Parse-Application-Id": YOUR_APP_ID,
    "X-Parse-Windows-Key": YOUR_DOTNET_KEY
};

然后构造您的安装 object 数据,以便它通过服务器验证。

var installationData = {
   appIdentifier: "your.app.package",
   appName: "appName",
   appVersion: "1.0.0",

   deviceType: "winrt",
   deviceUris: {_Default: YOUR_WNS_CHANNEL_URI},
   timeZone: "America/Los_Angeles",
   localeIdentifier: "en-US",
   parseVersion: "1.7.0.0",
   installationId: generateInstallationId()
}

最后,进行 REST 调用

WinJS.xhr({
    type: "POST",
    url: "https://api.parse.com/1/installations",
    headers: xhrHeaders,
    data: JSON.stringify(installationData)
});

我从 parse-push-plugin, particularly this file 中摘录了大部分代码。如果您需要更多上下文或想了解如何获取 WNS 通道,请随时查看。