به گروه های دستگاه در پلتفرم های اپل پیام بفرستید

پیام‌رسانی گروه دستگاه به شما امکان می‌دهد چندین دستگاه را به یک گروه اضافه کنید. این شبیه به پیام‌رسانی موضوع است، اما شامل احراز هویت است تا اطمینان حاصل شود که عضویت گروه فقط توسط سرورهای شما مدیریت می‌شود. به عنوان مثال، اگر می خواهید پیام های مختلفی را به مدل های مختلف تلفن ارسال کنید، سرورهای شما می توانند ثبت نام ها را به گروه های مربوطه اضافه یا حذف کنند و پیام مناسب را برای هر گروه ارسال کنند. پیام‌رسانی گروه دستگاه با پیام‌رسانی موضوعی متفاوت است زیرا شامل مدیریت گروه‌های دستگاه از سرورهای شما به جای مستقیماً در برنامه شما است.

حداکثر تعداد اعضای مجاز برای یک کلید اعلان 20 نفر است.

مدیریت گروه های دستگاه

قبل از ارسال پیام به گروه دستگاه، باید:

  1. برای هر دستگاهی که می خواهید به گروه اضافه کنید، نشانه های ثبت نام را دریافت کنید.

  2. notification_key را ایجاد کنید، که گروه دستگاه را با نگاشت یک گروه خاص (معمولاً یک کاربر) به همه نشانه‌های ثبت نام مرتبط با گروه شناسایی می‌کند. می توانید کلیدهای اعلان را در سرور برنامه ایجاد کنید.

مدیریت اولیه گروه‌های دستگاه - ایجاد و حذف گروه‌ها، و افزودن یا حذف دستگاه‌ها - از طریق HTTP v1 API انجام می‌شود و با استفاده از توکن‌های کوتاه‌مدت مجوز درخواست‌های ارسال را صادر می‌کند . برای مشاهده لیست کلیدهای پشتیبانی شده به کلیدهای مدیریت گروه دستگاه مراجعه کنید.

مدیریت گروه های دستگاه در سرور برنامه

ایجاد گروه دستگاه

برای ایجاد یک گروه دستگاه، یک درخواست POST ارسال کنید که نامی برای گروه و لیستی از نشانه های ثبت نام برای دستگاه ها ارائه می کند. FCM یک notification_key جدید برمی گرداند که نشان دهنده گروه دستگاه است.

درخواست HTTP POST

درخواستی مانند زیر را به https://fcm.googleapis.com/fcm/notification ارسال کنید:

https://fcm.googleapis.com/fcm/notification
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID

{
   "operation": "create",
   "notification_key_name": "appUser-Chris",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
                        "cR1rjyj4_Kc:APA91bGusqbypSuMdsh7jSNrW4nzsM...",
                        ... ]

notification_key_name یک نام یا شناسه است (به عنوان مثال، می تواند یک نام کاربری باشد) که منحصر به یک گروه خاص است. notification_key_name و notification_key برای گروهی از نشانه های ثبت نام منحصر به فرد هستند. اگر چندین برنامه مشتری برای شناسه فرستنده یکسان دارید، مهم است که notification_key_name برای هر برنامه مشتری منحصر به فرد باشد. این تضمین می کند که پیام ها فقط به برنامه هدف مورد نظر می روند.

فرمت پاسخ

یک درخواست موفق یک notification_key مانند زیر را برمی گرداند:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

notification_key و notification_key_name مربوطه را برای استفاده در عملیات بعدی ذخیره کنید.

بازیابی کلید اعلان

اگر نیاز به بازیابی یک کلید اعلان موجود دارید، از notification_key_name در درخواست GET همانطور که نشان داده شده است استفاده کنید:

https://fcm.googleapis.com/fcm/notification?notification_key_name=appUser-Chris
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID
{}

برای هر درخواست GET برای نام کلید اعلان داده شده، سرور یک رشته رمزگذاری شده منحصر به فرد را برمی گرداند. اگرچه هر رشته ممکن است یک کلید متفاوت به نظر برسد، اما در واقع یک مقدار «کلید_اعلان» معتبر است.

افزودن و حذف دستگاه ها از گروه دستگاه

برای افزودن یا حذف دستگاه‌ها از یک گروه موجود، یک درخواست POST با پارامتر operation تنظیم شده برای add یا remove ارسال کنید و نشانه‌های ثبت را برای افزودن یا حذف ارائه دهید.

درخواست HTTP POST

به عنوان مثال، برای افزودن دستگاهی با رمز ثبت bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... به appUser-Chris ، باید این درخواست را ارسال کنید:

{
   "operation": "add",
   "notification_key_name": "appUser-Chris",
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}

فرمت پاسخ

یک درخواست موفقیت آمیز برای افزودن یا حذف یک دستگاه، یک notification_key مانند زیر را برمی گرداند:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

کلیدهای مدیریت گروه دستگاه

جدول زیر کلیدهای ایجاد گروه های دستگاه و افزودن و حذف اعضا را فهرست می کند.

جدول 10. کلیدهای مدیریت گروه دستگاه.

پارامتر استفاده شرح
operation مورد نیاز، رشته عملیات اجرا می شود. مقادیر معتبر create ، add و remove .
notification_key_name مورد نیاز، رشته نام تعریف شده توسط کاربر گروه دستگاه برای ایجاد یا تغییر.
notification_key مورد نیاز (به جز برای عملیات create ، رشته شناسه منحصر به فرد گروه دستگاه. این مقدار در پاسخ برای یک عملیات create موفقیت آمیز برگردانده می شود و برای تمام عملیات های بعدی در گروه دستگاه لازم است.
registration_ids مورد نیاز، آرایه از رشته ها نشانه‌های دستگاه برای افزودن یا حذف. اگر تمام نشانه های ثبت نام موجود را از یک گروه دستگاه حذف کنید، FCM گروه دستگاه را حذف می کند.

ارسال پیام به گروه های دستگاه

برای ارسال پیام به گروه های دستگاه، از HTTP v1 API استفاده کنید. اگر در حال حاضر با استفاده از APIهای ارسال قدیمی قدیمی برای HTTP یا XMPP یا هر یک از نسخه‌های قدیمی‌تر Firebase Admin SDK برای Node.js بر اساس پروتکل‌های قدیمی، به گروه‌های دستگاه ارسال می‌کنید، اکیداً توصیه می‌کنیم که به HTTP v1 مهاجرت کنید. API در اولین فرصت APIهای ارسال قدیمی در ژوئن 2024 غیرفعال و حذف خواهند شد.

ارسال پیام به یک گروه دستگاه بسیار شبیه به ارسال پیام به یک دستگاه جداگانه است، با استفاده از همان روش برای تأیید درخواست‌های ارسال . فیلد token را روی کلید اعلان گروه تنظیم کنید:

باقی مانده

POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1

Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA

{
   "message":{
      "token":"APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
      "data":{
        "hello": "This is a Firebase Cloud Messaging device group message!"
      }
   }
}

دستور cURL

curl -X POST -H "Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA" -H "Content-Type: application/json" -d '{
"message":{
   "data":{
     "hello": "This is a Firebase Cloud Messaging device group message!"
   },
   "token":"APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}}' https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send

ارسال پیام های بالادستی به گروه های دستگاه

برای ارسال پیام‌های بالادستی به گروه‌های دستگاه در برنامه‌های Apple، برنامه مشتری Apple باید FIRMessaging.sendMessage را پیاده‌سازی کند:

(void)sendMessage:(nonnull NSDictionary *)message
     to:(nonnull NSString *)receiver
withMessageID:(nonnull NSString *)messageID
timeToLive:(int64_t)ttl;