ส่ง SNS การแจ้งเตือนไปยังผู้ใช้ทั้งหมดที่บอกรับเรื่องจาก Lambda

0

คำถาม

ฉันต้องถูกสร้างขึ้น E-Commerce IOS โปรแกรมเกี่ยวกับโปรแกรมเบื้องหลังอยู่ใน nodejs (AWS Lambda). ตอนที่เป็นของผู้ใช้ signedIn/LoggedIn,แอพฯเป็นสมาชิกหนังสืเป็น SNS เรื่อง ที่ฉันต้องสร้างขึ้นเพื่อส่งการแจ้งให้ทราบและร้านขายคน ให้ตั๋วเข้าใช้งานและอุปกรณ์ ARN ใน DB. ตอนนี้ฉันต้องการจะส่งผลักการแจ้งเตือนไปยังผู้ใช้ทั้งหมดที่ต้องบอกรับมัน SNS หัวข้อเมื่อเราถูกเพิ่มรายการใหม่ไปที่ร้านค้า ตอนนี้ต้องส่งการแจ้งให้ทราบฉันกำลังทำการดึงข้อมูลผู้ใช้ทั้งหมดจาก DB แล้วผ่านทางผู้ใช้เพื่อให้พวกเขาดันรับตั๋วเข้าใช้งานและส่งการแจ้งให้ทราบเพื่อผู้ใช้หนึ่งโดยหนึ่งซึ่งเป็นมาก costly กระบวนการและรูปแบบ api ใช้เวลามากนักหรอกนะ

ตอนนี้ฉันต้องทำคือไป SNS หัวข้อจาก Lambda แล้วส่งร่างขอการแจ้งให้ทราบเพื่อว่าหัวข้องและนั่น SNS เรื่อจะส่งการแจ้งเตือนไปยังผู้ใช้ทั้งหมดที่ต้องบอกรับเรื่อ. ฉันต้องค้นหามันแต่ไม่สามารถหาทางออกหรอกนะ

รหัสฉันต้องทำการส่งการแจ้งให้ทราบคือ

await Promise.all(targetArns.map(async (item, index) => {
         const publishNotificationParams = { 
            "TargetArn": item,
            "Message": JSON.stringify({
              "default": JSON.stringify({
                  "category" : title,
                  "alert" : {
                    "title" : title,
                    "body" : 'New product is launced',
                    "data" : product
                  },
                  "badge" : 1,
                  "sound" : "chime.aiff"
                }),
                "APNS_SANDBOX": JSON.stringify(params),
                "APNS": JSON.stringify(params)
            }),
            "MessageStructure": "json"
        };
        var publishTextPromise = sns.publish(publishNotificationParams).promise();
       publishTextPromise.then(
        function(data) {
          console.log(`Message ${publishNotificationParams.Message} sent to the topic ${publishNotificationParams.TargetArn}`);
        }).catch(
          function(err) {
          console.error(err, err.stack);
        });
     }));

แต่สำหรับนี่ฉันต้องเอาทุกของผู้ใช้จาก DB ได้พวกเขา endpoint ARN และจากนั้นก็ส่งการแจ้งให้ทราบโดยทำซ้ำ.

ฉันอยากจะโทรหา SNS เรื่องขอผ่านร่างขอการแจ้งให้ทราบและ SNS จะส่งการแจ้งให้ทราบเพื่อนทุกผู้ใช้ที่บอกรับมัน SNS กเรื่อง

ฉันกำลังทำเรื่องนี้เพราะฉันอยากจะช่วยค่าใช้จ่ายเพื่อข้อมูลทุกทะเบียนผู้ใช้จาก DB และจากนั้นก็ส่งการแจ้งให้ทราบ

1

คำตอบที่ดีที่สุด

0

นี่คือวิธีที่คุณอาจจะประสบความสำเร็จในส่วนนั้นไหลเวียน. ฉันคิดว่าคุณจะทำไปเรียบร้อยแล้วบางส่วนของการจัดเตรียมไว้.

  1. สร้างเรื่องนั้นจะถูกใช้ต้องแฟนออกจากการแจ้งเตือนไปยังทั้งหมดของคุณผู้ใช้: https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html

  2. สร้างแพลตฟอร์มโปรแกรม(s)สำหรับความแตกต่าง platforms ของคุณโปรแกรนี้จะถูกใช้อยู่: https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html

  3. เมื่อผู้ใช้งานร่องรอยขึ้นสำหรับแอ๊ปของคุณสร้างกองแพลตฟอร์ม endpoint สำหรับโปรแกรมที่ตรงกับแพลตฟอร์มของผู้ใช้: https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html

    3.1. ถ้าคุณต้องการที่จะสามารถเป้าหมายของผู้ใช้นี้โดยตรงเหมือนกัร้านนี้ ARN ที่ไหนสำหรับโดยตรง publishes(อย่างที่คุณกำลังทำอะไรอยู่ตอนนี้).

  4. ตอนนี้ยังสร้างสมัครสมาชิกสำหรับเรื่อสร้างอยู่ในขั้นตอนที่ 1 ต้องกา endpoint ARN: https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html

  5. ลงแจ้งไปที่หัวข้อสร้างขึ้นระหว่างขั้นที่ 1: https://docs.aws.amazon.com/sns/latest/api/API_Publish.html

SNS จะโดยอัตโนมัตินแฟนออกจากข้อความทุก subscribers(ทั้งหมดของคุณผู้ใช้)ดังนั้นกันของพวกเขาจะได้รับการแจ้งให้ทราบโดยไม่มีคุณ iterating กัใช้งาน

2021-11-24 23:11:24

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่