valdeirpsr / firebasemessaging-php
使用 Google Firebase 向移动设备发送消息。
Requires
- php: >=5.4
- curl/curl: 1.4.*
Requires (Dev)
- phpunit/phpunit: 5.5.*
This package is auto-updated.
Last update: 2024-09-03 06:23:35 UTC
README
使用 Google Firebase 向移动设备发送消息。
安装
composer require valdeirpsr/firebasemessaging-php
发送基本通知
require "vendor/autoload.php"; use FirebaseMessaging\FirebaseMessaging; use FirebaseMessaging\FirebaseNotification; use FirebaseMessaging\FirebaseCondition; $notification = new FirebaseNotification(); $notification->setTitle("Run!! New video"); $notification->setBody("Duelo de MC's - FINAL - Thaik vs Din"); $messaging = new FirebaseMessaging("serverKey"); $messaging->setTo("/topics/RapHipHop"); $messaging->setOperacionalSystem(FirebaseMessaging::OS_ANDROID); $messaging->setNotification($notification); $messaging->send();
发送完整通知
require "vendor/autoload.php"; use FirebaseMessaging\FirebaseMessaging; use FirebaseMessaging\FirebaseNotification; use FirebaseMessaging\FirebaseCondition; $notification = new FirebaseNotification(); $notification->setTitle("Run!! New video"); $notification->setBody("Duelo de MC's - FINAL - Thaik vs Din"); $notification->setIcon("custom_logo"); $notification->setTag("valdeirpsr_1"); $notification->setColor("#E91E63"); $notification->setClickAction("OPEN_ACTIVITY_VIDEO"); $notification->setSound("sound_notification"); $condition = new FirebaseCondition("RapHipHop"); $condition->openAnd("DouglasDin"); $condition->orInTopics("Thaik"); $condition->closeAnd(); // output: 'RapHipHop' in topics && ('DouglasDin' in Topics || 'Thaik' in Topics) $messaging = new FirebaseMessaging("serverKey"); $messaging->setCondition($condition); $messaging->setPriority(FirebaseMessaging::PRIORITY_HIGH); $messaging->setTimeToLive(2419200); $messaging->setOperacionalSystem(FirebaseMessaging::OS_BOTH); $messaging->setNotification($notification); $messaging->setRestrictedPackageName("br.com.valdeirsantana.test"); $messaging->setCollapseKey("video_new"); $messaging->setDelayWhileIdle(false); $messaging->setDevelopmentMode(false); $messaging->setData([ "video_id" => "ZDz-5fQAIo4", "title" => "Duelo de MC's - FINAL - Thaik vs Din :: Tradicional - 23/11/12", "channel" => "Indie BH", "channel_url" => "https://www.youtube.com/channel/UCBkYx1zP0aOaMXsp9As75Tg", "channel_id" => "UCBkYx1zP0aOaMXsp9As75Tg", "thumbnail" => [ "default" => [ "url" => "https://i.ytimg.com/vi/ZDz-5fQAIo4/default.jpg", "width" => "120", "height" => "90" ], "high" => [ "url" => "https://i.ytimg.com/vi/ZDz-5fQAIo4/mqdefault.jpg", "width" => "320", "height" => "180" ], "high" => [ "url" => "https://i.ytimg.com/vi/ZDz-5fQAIo4/hqdefault.jpg", "width" => "480", "height" => "360" ], "standard" => [ "url" => "https://i.ytimg.com/vi/ZDz-5fQAIo4/sddefault.jpg", "width" => "640", "height" => "480" ], "maxres" => [ "url" => "https://i.ytimg.com/vi/ZDz-5fQAIo4/maxresdefault.jpg", "width" => "1920", "height" => "1080" ] ] ]); $messaging->send();
设置将接收通知的设备
此参数指定消息的接收者。
值必须是注册令牌、通知密钥或主题。不要设置此字段以发送多个主题,请参阅 FirebaseMessaging::setCondition。
$messaging->setTo("RegistrationToken"); $messaging->setTo("/topics/RapHipHop");
设置将接收通知的设备
此方法指定了一个接收组播消息的设备(注册令牌或ID)列表。它必须包含1到1,000条记录令牌。
$messaging->setRegistrationIds([ "RegistrationToken#1", "RegistrationToken#2", "RegistrationToken#3", "RegistrationToken#4", ]);
设置通知的优先级
默认情况下,消息以正常优先级发送。正常优先级优化客户端应用电池消耗,应始终使用,除非需要立即交付。对于具有正常优先级的消息,应用可以稍后获取消息。
当以高优先级发送消息时,它将立即发送,并且应用可以触发设备挂起并打开到您的服务器的网络连接。
$messaging->setPriority(FirebaseMessaging::PRIORITY_HIGH);
设置空闲设备的延迟
当此参数设置为true时,消息将不会发送到不活跃的设备。
默认:false
$messaging->setDelayWhileIdle(true);
向设备发送数据
键不应是保留词(“of”或以“google”或“gcm”开头的任何词)。不要使用此表中定义的任何词(作为 collapse_key)。
它们是字符串类型的推荐值。有必要将值转换为没有字符串数据(例如,布尔值或整数)的对象或其他类型。
$messaging->setData([ "ClassificacaoGinasticaOlimpica" => [ "Sanne Wevers", "Laurie Hernandez", "Simone Biles", "Marine Boyer", "Flávia Saraiva" ] ]);
配置您的通知
设置通知标题
指示通知的标题。此字段在手机和iOS平板电脑上不可见,只有iWatch可见。
Android必需;iOS可选
$notification->setTitle("My Title");
设置消息通知
指示通知的正文文本。
Android和iOS可选
$notification->setBody("My Message");
设置通知中的图标
指示通知中的图标。
仅适用于Android(可选)。图标应在res/drawable中
$notification->setIcon("custom_icon_notification");
设置通知声音
指示设备收到通知时播放的声音。
Android声音文件应位于/res/raw/,iOS声音文件可以位于主客户端应用包或应用数据容器的Library/Sounds文件夹中。有关更多信息,请参阅iOS开发者的库。
Android和iOS可选
$notification->setSound("sound_notification");
设置标签
指示每个通知是否会在Android通知托盘中产生新条目。如果没有设置,每个请求都将创建一个新的通知。如果设置且已显示具有相同标签的通知,则新通知将替换通知托盘中的现有通知。
仅适用于Android(可选)
$notification->setTag("notification_id_1");
设置图标颜色
指示图标颜色,格式为#rrggbb。
仅适用于Android(可选)
$notification->setColor("#FF0000");
为用户点击通知时关联一个动作
指示用户点击通知时关联的动作。
如果设置在iOS上,则与APNs有效负载中的类别匹配。
在Android上,如果设置了此参数,则用户点击通知时将启动具有相应intent过滤器的活动。
Android和iOS可选
$notification->setClickAction("OPEN_ACTIVITY_NOTIFICATION");
即将支持XMPP