多田:AdedJSとFCMのAWSピンポイントプッシュ通知の一致


この物語の議題は、今日、あるいは過去に学んだことは、いつか役に立つということを理解することです.あなたは状況がストライキを知っていることはありません.
だからここで何が起こるか、私は密接に私のクライアントといくつかの方法で働いていたFCM Push Notifications 我々の端でうまく働いています.しかし、我々はテストするためにFCM HTTP APIを使用していました.AWSピンポイントを使用していました.今では、Pythonで書かれたSDKとサーバの衝突以来.
AWSはほぼすべてのサーバ言語サポートを提供しており、ほぼ2年前にノードJSで働いています.それで、私は戻って、単純なサーバーを作成することに決めました.だから私は無料AWSアカウントを作成し、移動するSDK for Node JS .
注意:
  • AWSの上でサインアップをしている間、クレジットカード詳細を加えることを恐れないでください.彼らは無料で計画を超越している場合にのみ充電されます.
  • AWSピンポイントコンソールからプッシュ通知をテストするにはdocument .
  • 初心者のためのノードのJSチュートリアルを求めてください.おすすめしますthis .
    私は、あなたがノードJSの基本的な知識を持っていると思っています.まだここからプロジェクトを設定できます

  • 対:https://code.visualstudio.com/docs/nodejs/nodejs-tutorial

  • MDNhttps://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/development_environment
  • したがって、我々がノードJS SDKを通過するので、状況はここで単純でありませんDocument .
    {  
      "name": "aws-sdk-v3-iam-examples",  
      "version": "1.0.0",  
      "main": "index.js",  
      "dependencies": {  
       "@aws-sdk/client-s3": "^3.32.0"  
      },  
      "type": "module"  
    }
    
    これによりAWS S 3クライアントをインストールします.しかし、我々の要件は、ピンポイントを使用して通知をテストすることです待ってください.それで、パッケージの中でdepedenciesを加えます.以下のJSONのように
    {  
      "name": "FCM Test Server",  
      "version": "1.0.0",  
      "main": "index.js",  
      "author": "Abhishek Thapliyal",  
      "dependencies": {  
        "@aws-sdk/client-pinpoint": "^3.54.1",  
        "aws-sdk": "^2.1094.0"  
      },  
      "type": "module"  
    }
    
    依存をインストールするために以下のコマンドを押してください
    npm install
    
    現在一人当たりofficial document , プッシュ通知をテストするためのノードJS例は、以下のように更新されます.Docでは他のターゲットと同様にAPNS、Baidu等が表示されますが、FCMを必要とするので他のサービスも削除します.
    "use strict";
    
    const AWS = require("aws-sdk");
    const region = "<REGION>";
    
    var applicationId = "<APPLICATION_ID>";
    
    var recipient = {
      token: "<FCM TOKEN>",
      service: "GCM",
    };
    
    function CreateMessageRequest() {
      var token = recipient["token"];
      var service = recipient["service"];
      if (service == "GCM") {
        var messageRequest = {
          Addresses: {
            [token]: {
              ChannelType: "GCM",
            },
          },
          MessageConfiguration: {
            GCMMessage: {
              RawContent: `{
                        "notification": {
                          "title": "AWS Pinpoint Notification title",
                          "body": "AWS Pinpoint Notification body",
                          "sound": "default",
                          "content_available": true
                        },
                        "data": {
                          "url": "katapult://leases/118636"
                        },
                        "priority": "high"
                      }`,
            },
          },
        };
      }
    
      return messageRequest;
    }
    
    function ShowOutput(data) {
      if (
        data["MessageResponse"]["Result"][recipient["token"]]["DeliveryStatus"] ==
        "SUCCESSFUL"
      ) {
        var status = "Message sent! Response information: ";
      } else {
        var status = "The message wasn't sent. Response information: ";
      }
      console.log(status);
      console.dir(data, { depth: null });
    }
    
    function SendMessage() {
      var token = recipient["token"];
      var service = recipient["service"];
      var messageRequest = CreateMessageRequest();
      var credentials = new AWS.SharedIniFileCredentials({ profile: "default" });
      AWS.config.credentials = credentials;
      AWS.config.update({ region: region });
      var pinpoint = new AWS.Pinpoint();
      var params = {
        ApplicationId: applicationId,
        MessageRequest: messageRequest,
      };
    
      pinpoint.sendMessages(params, function (err, data) {
        if (err) console.log(err);
        else ShowOutput(data);
      });
    }
    
    exports.SendMessage = SendMessage;
    
    現在、領域、ApplicationKeep IDとFCMトークンを交換しなければなりません.
    領域:あなたはAWSコンソールの右上のコーランの領域を得ます.

    Applications . id : AWSコンソールのピンポイントを検索します.新しいプロジェクトを追加します.これは、設定機能を要求するプッシュ通知を選択します.それはプッシュ通知サービスについては、FCMを選択し、FCMのサーバーのキーをFCMのコンソールから追加します.あなたはプロジェクトの設定を取得します.
    プロジェクトが正常にAWS PinPointで作成されたとき、プロジェクトIDとしてアプリケーションID名を取得します.

    FCMトークン:あなたが働いているモバイルプロジェクトに応じてデバイスからFCMトークンを取得します.以下はセットアップのためのリファレンスです

  • アンドロイドhttps://firebase.google.com/docs/cloud-messaging/android/client

  • IOShttps://firebase.google.com/docs/cloud-messaging/ios/client

  • ネイティブに反応するhttps://firebase.google.com/docs/cloud-messaging/ios/client
  • テストの前に既に通知を要求したことを確認してください.
    FCMペイロード構造に従ってバックグラウンド通知をサポートしたいので、私はrawcontentに慣れました.あなたの周りのプロパティを再生することができますhere .
    それで、あなたのリクエストコントローラで
    const { SendMessage } = require("./Location /to/pinpoint\_notification\_service.js");.  
    ..  
    ...
    SendMessage();
    
    あなたの要件ごとにフローを作るために、async waitを使ってください.
    APIをヒットし、マジックを参照してください
    すべてのドキュメントのリンクが添付されます.あなたがチェックすることができますし、フィードバックを追加する自由を感じる.
    ハッピーコーディング😄😄