尝试通过ADM发送消息时出现“ invalid_scope”

时间:2019-09-03 23:30:05

标签: kindle-fire amazon-device-messaging

我们正在尝试使用Amazon Device Messaging(ADM)将通知发送到Kindle Fire。我在Amazon Developer Console上启用了设备消息传递。在Kindle上,我获得了注册ID。

我用JavaScript编写了一个测试应用程序,以测试我是否能够获取令牌以及是否可以通过测试应用程序发送通知。我使用了在测试应用程序中的点燃设备上获得的相同注册ID。下面是获取访问令牌的代码。

function getAccessToken(callback){

    console.log("Requesting access token from server...");

    var credentials = { scope: "messaging:push",
        grant_type: "client_credentials",
        client_id: CLIENT_ID,
        client_secret: CLIENT_SECRET
    }

    var post_data = querystring.stringify(credentials);

    var post_options = {
        host: "api.amazon.com",
        port: "443",
        path: "/auth/O2/token",
        method: "POST",
        headers: {
            "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
        }
    };

    var req = https.request(post_options, function(res) {

        var data = "";

        res.on("data", function (chunk) {
            data += chunk;
        });

        res.on("end", function() {
            console.log("\nAccess token response:", data);
            var accessToken = JSON.parse(data).access_token;
            callback(accessToken);
        });

    });

    req.on("error", function(e) {
        console.log("\nProblem with access token request: ", e.message);
    });

    req.write(post_data);
    req.end();
}

我得到以下印刷品

“访问令牌响应:{”错误“:” invalid_scope“,”错误说明“:”请求具有无效参数:范围“}”

我在Amazon开发人员控制台上启用了设备消息传递和安全配置文件。我确认我在控制台上使用的是正确的CLIENT ID和CLIENT SECRET,并使用了与点燃时相同的注册ID。但是我收到“ invalid_scope”错误。不知道我在做什么错。谁能让我知道如何解决这个问题。

0 个答案:

没有答案