پیامرسانی گروه دستگاه به شما امکان میدهد چندین دستگاه را به یک گروه اضافه کنید. این روش مشابه پیامرسانی موضوعی است، اما شامل اصالتسنجی نیز میشود تا مطمئن شوید که عضویت گروه فقط توسط سرورهای شما مدیریت میشود.
برای مثال، اگر میخواهید پیامهای مختلفی به مدلهای مختلف تلفن ارسال کنید، کارسازهایتان میتوانند ثبتنامها را به گروههای مناسب اضافه کنند یا از آنها بردارند و پیام مناسب را به هر گروه ارسال کنند. پیامرسانی گروه دستگاه با پیامرسانی موضوعی تفاوت دارد، زیرا در پیامرسانی گروه دستگاه، گروههای دستگاه از سرورهای شما مدیریت میشوند، نه مستقیماً در برنامه شما.
حداکثر تعداد اعضای مجاز برای کلید اعلان ۲۰ است.
مدیریت گروههای دستگاه
قبلاز ارسال پیام به گروه دستگاه، باید:
- برای هر دستگاهی که میخواهید به گروه اضافه کنید، کد ثبت دریافت کنید.
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