首页 > 解决方案 > SNS - 使用令牌获取端点 arn?

问题描述

是否无法使用 获取设备端点Token

我可以endpoint arn使用设备令牌创建一个:

//let androidDeviceId = c6RcYuiyRqiMMrm9JiFH3W:APA91bHq2bf1VBDHTYhivTmylN24NkYWd9qbS5FKPfLnHV5NSvmoiKG8f_Iz7OLJ9lDUN6kfpC-....;

const endPointParams = {
        PlatformApplicationArn: process.env.AWS_SNS_ARN,
        Token: androidDeviceId
    }

   
    try {
        const result = await sns.createPlatformEndpoint(endPointParams).promise();;
        console.log(result);

        return res.status(200).send({ success: true });
    } catch (err) {
        console.log(err);
        return res.status(500).send({ reason: err });
    }

在此处输入图像描述

但我似乎无法找到一种方法来endpoint arn使用token.

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html

getEndpointAttributes,但只能使用以下方式获取令牌arn endpoint

在此处输入图像描述

我将如何使用令牌获取端点?

标签: node.jsamazon-web-servicesaws-lambdaamazon-sns

解决方案


我最终不得不创建另一个dynamodb表来跟踪设备token以及endpoint arn.

所以在创建之后endpoint arn我会把它插入到我的token-endpoint-table

//Creates the endpoint arn using the token (the device id)
let createEndpointResult = await sns.createPlatformEndpoint(endPointParams).promise();

let endpointArn = createEndpointResult.EndpointArn;

//Inserts into the token-endpoint-table
await upsertDeviceId(androidDeviceId, endpointArn);

然后我会使用tokenas查询该表primary key以获取端点arn.

如果有人有更好的解决方案,请分享。


推荐阅读