پیامرسانی گروه دستگاه به شما امکان میدهد چندین دستگاه را به یک گروه اضافه کنید. این شبیه به پیامرسانی موضوعی است، اما شامل اصالتسنجی برای اطمینان از این است که عضویت گروه فقط توسط سرورهای شما مدیریت میشود.
برای مثال، اگر میخواهید پیامهای متفاوتی به مدلهای مختلف تلفن ارسال کنید، سرورهایتان میتوانند ثبتنامها را به گروههای مناسب اضافه یا از آنها حذف کنند و پیام مناسب را به هر گروه ارسال کنند. پیامرسانی گروهی دستگاه با پیامرسانی موضوعی متفاوت است زیرا شامل مدیریت گروههای دستگاه از سرورهای شما بهجای مدیریت مستقیم در برنامه شما میشود.
حداکثر تعداد اعضای مجاز برای کلید اعلان ۲۰ است.
مدیریت کردن گروههای دستگاه
قبلاز ارسال پیام به گروه دستگاه، باید:
- برای هر دستگاهی که میخواهید به گروه اضافه کنید، کد ثبت دریافت کنید.
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 برای نام کلید اعلان دادهشده، سرور یک رشته کدگذاریشده منحصربهفرد برمیگرداند. اگرچه ممکن است هر رشته کلید متفاوتی بهنظر برسد،
اما درواقع مقدار notification_key معتبری است.
درحال بازیابی FCM کد برای گروههای دستگاه
اگر لازم است توکنهای FCM متعلق به گروه دستگاه را بازیابی کنید، از
notification_key در درخواست GET بهصورت زیر استفاده کنید:
https://fcm.googleapis.com/fcm/notification?notification_key=APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID
{}
پاسخ بهاینصورت است:
{
"notification_key_name": "appUser-Chris",
"registration_ids": ["token1", "token2"]
}
افزودن و برداشتن دستگاهها از گروه دستگاه
برای افزودن یا برداشتن دستگاهها از گروه موجود، درخواست POST را با
پارامتر operation تنظیمشده روی add یا remove ارسال کنید و برای افزودن یا برداشتن،
کدهای ثبت را ارائه دهید.
درخواست HTTP POST
برای مثال، برای افزودن دستگاهی با کد ثبت
bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... به appUser-Chris، باید
این درخواست را ارسال کنید:
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": "add",
"notification_key_name": "appUser-Chris",
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
قالب پاسخ
درخواست موفق برای افزودن یا برداشتن دستگاه،
notification_key را مانند زیر برمیگرداند:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
کلیدهای مدیریت گروه دستگاه
جدول زیر کلیدهای ایجاد گروههای دستگاه و افزودن و برداشتن اعضا را فهرست میکند.
| پارامتر | کاربرد | شرح |
|---|---|---|
operation |
الزامی، رشته | عملیاتی که باید اجرا شود.مقادیر معتبر عبارتند از create، add، و remove. |
notification_key_name |
الزامی، رشته | نام تعریفشده توسط کاربر برای گروه دستگاهی که باید ایجاد یا اصلاح شود. |
notification_key |
الزامی (بهجز برای عملیات create، رشته) |
شناسه یکتای گروه دستگاه. این مقدار در پاسخ برای عملیات موفقیتآمیز create برگردانده میشود و برای همه عملیاتهای بعدی در گروه دستگاه لازم است. |
registration_ids |
الزامی، آرایه رشتهها | نشانهای دستگاه برای افزودن یا برداشتن. اگر همه کدهای ثبت موجود را از گروه دستگاه بردارید، FCM گروه دستگاه را حذف میکند. |
ارسال پیام به گروههای دستگاه
ارسال پیام به گروه دستگاه بسیار شبیه به ارسال پیام به یک دستگاه است و از همان روش برای مجاز کردن درخواستهای ارسال استفاده میکند.
فیلد token را روی کلید اعلان گروه تنظیم کنید:
REST (انتقال بازنمودی وضعیت)
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