web-dev-qa-db-ja.com

Firebase Messagingを使用してPostman経由でプッシュを送信する

Postman を使用して、Firebase Cloud Messagingサービスを使用して単一のプッシュ通知を送信しようとしています。

これは、同じ目的のためのcURLコマンドであり、参考として使用しています。

curl -X POST --header "Authorization: key=<API_ACCESS_KEY>" --Header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d "{\"to\":\"<YOUR_DEVICE_ID_TOKEN>\",\"notification\":{\"body\":\"Firebase\"} \"priority":\"10"}"

これまでにやったこと..

1-Headersを適切に設定します

enter image description here

2-Bodyで、rawを使用しています

{
    "to" : "<YOUR_DEVICE_ID_TOKEN>"
    , 

    "notification": {
    "body": "Firebase Cloud Message"
  }

  }

実行すると、戻ってきます401 - Unauthorized

プッシュ通知を正しく送信するには何が欠けていますか?

24
Machado

ヘッダーにAuthorizationキーを設定する正しい方法は

key=<API_ACCESS_KEY>

だけでなく

<API_ACCESS_KEY>

馬鹿げた間違いですが、これはPostmanでFirebase Messagingをテストするのに役立つかもしれないので、質問を開いたままにします。

30
Machado

POSTMANを介したFCMの投稿

本文-toはトークンIDです(インスタンストークンを介して生成される必要があります)本文をrawバイナリapplication/jsonに書き込みます body tye

{
   "to": "cpa8cZPjq-w:APA91bF122f1Rnhu9v47bL
   YMajaNTHAIU5SzItDwTy9o2MCIveG0PlK78VPvp3d
   CqjwnUKZ4
   ngi1trSyM3_aXttW62iknFfbPGtjRLhZr6wq-3qFdboz8gzdOGPz**********",

   "notification": {

    "body": "Hello",
    "title": "This is test message."
   }
   }

ヘッダー:認証が必要です:サーバーキー

コンテンツタイプ:application/json headerimage ここに成功メッセージを投稿した後: success message image

26

新しいFCM HTTP v1 APIでは、Postmanを介してプッシュ通知をテストする方法が変更され、既存のソリューションはプッシュ通知をテストする従来の方法のみに対応しました: https://firebase.google.com/docs/cloud-メッセージ/送信メッセージ

FCM HTTP v1 APIを使用してPostmanでテストするには、まず短命のOauth 2トークンを取得する必要があります。Firebaseサイトの情報に従ってトークンを生成できます: https://firebase.google.com/docs/cloud-messaging/auth-server

Python以下のコードを使用して私のものを生成しました-パッケージをコードに正常にインポートできるように、パッケージをpipインストールすることを忘れないでください:

from oauth2client.service_account import ServiceAccountCredentials

def _get_access_token():
  """Retrieve a valid access token that can be used to authorize requests.

  :return: Access token.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      'service-account.json', FCM_SCOPE)
  access_token_info = credentials.get_access_token()
  return access_token_info.access_token

トークンを取得したら、承認の下でそれをPostmanに挿入できます。

enter image description here

重要:

私の場合、数分ごとにFCMにプッシュ通知を送信する予定のタスクをテストしようとしていたので、これを機能させるのに少し苦労していました。トークンをログに出力してから、テストのためにそのトークンをPostmanに渡しましたが、FCMへのスケジュールされた呼び出しで既に使用されていることを認識していませんでした。

その場合、既に使用されているため、トークンは無効になり、Postmanテストはすべて失敗しました。この場合、Postmanテスト用に新しいトークンを生成する必要があります。

9
Simon

認証キーがどのように設定されているか、以下のスクリーンショットを見てください

許可:** key = ** abcdefghijklmnopr2qrst253uv124wxyz_9shg

enter image description here

7
rohitpaniker

Postmanを開き、Enter request URLテキストボックスをクリックして、firebase urlを入力します

https://fcm.googleapis.com/fcm/send

リクエストタイプをPOSTに変更するより。以下のスクリーンショットを参照してください。

enter image description here

ヘッダーをクリックして、2つのparamsContent-TypeAuthorizationを追加します。

Content-Type= application/json
Authorization=AIzaSyAEb3NhsfGw1ih5mn8cmrGUAXMp86waQ //FCM SERVER KEY

以下のスクリーンショットを参照してください。

enter image description here

BodyをクリックしてRowを選択し、以下のようにオブジェクトとして値を追加します

{ 
"to":"eB5papU2Xdc:APA91bFFvc3dXru1fN5JY8U19oHIpfGhPUx7Ll7v9vJYTsIGZ15mDwB2Wpep3flLK85IUqqs2WqJwjYHSDYX28oJ1wTP0R2TDc2ba_uVjUauDcp3pCNKr_0KlghOnS", 
 "notification" : {
 "body" : "New announcement assigned",
 "OrganizationId":"2",
 "content_available" : true,
 "priority" : "high",
 "subtitle":"Elementary School",
 "Title":"hello"
 },
 "data" : {
 "priority" : "high",
 "sound":"app_sound.wav",
 "content_available" : true,
 "bodyText" : "New Announcement assigned",
 "organization" :"Elementary school"
}
}

これで、郵便配達員は次のようになります。右上のSendボタンをクリックします。

enter image description here

幸運を!

6
r15

これを確認してください: POSTMANでFCM通知をテストしてください!

POSTMANでHTTPプロトコルを使用してデータメッセージを送信する

  • Fireec Console> Project Settings> Cloud MessagingからLegecy Server Keyをコピーする必要があります

注:Firebaseは、サーバーキーを新しいバージョンにアップグレードしました。レガシーサーバーキーを引き続き使用できますが、最新バージョンにアップグレードすることをお勧めします。

  • POSTを選択します。リクエストURLを https://fcm.googleapis.com/fcm/send として入力します
  • ヘッダー認証を追加:key=<legacy_server_key> OR Authorization: key=<server_key>およびContent-Type: application/json.

  • Body> raw> JSON(application/json))を選択し、次のコードを追加します:

    {
         "to" : "YOUR_FCM_TOKEN_WILL_BE_HERE",
         "collapse_key" : "type_a",
         "notification" : {
             "body" : "Body of Your Notification",
             "title": "Title of Your Notification"
         },
         "data" : {
             "body" : "Body of Your Notification in Data",
             "title": "Title of Your Notification in Title",
             "key_1" : "Value for key_1",
             "key_2" : "Value for key_2"
         }
    }

POSTMANコレクションを作成しました Postmanで直接実行します

それがあなたを助けることを願っています。

POST https://fcm.googleapis.com/v1/projects/projectID/messages:send

ヘッダー

Authorization:Bearer ya29.c.ElrXBjdxUzOI................o7_Y2shX2Je4tEe0

body

  {
      "message": {
        "token": "dlqj05MCnNI:APA91bGhCX6NhT.................QDpKhGheHyhhJ6T",
        "Android": {
          "notification": {
            "title": "New Content!",
            "body": "A new video has been uploaded.",
            "icon": "your_icon"
          }
        }
      }
    }
1
anson

必ずcontent-type:application/jsonヘッダーを含めてください

次のようなコンテンツタイプヘッダーを含めないと、誤解を招くエラーで失敗します。Error= MissingRegistration

0
Umer Ahmed