我在我的项目中遇到了一些FCM的问题。
这是我在.env中的配置FCM
FCM_SERVER_KEY_ANDRO=thisKeyForAndroid
FCM_SERVER_KEY_IOS=thisKeyForIOS
FCM_SENDER_ID=senderId这是我的配置fcm.php
<?php
return [
'driver' => env('FCM_PROTOCOL', 'http'),
'log_enabled' => false,
'http' => [
'server_key' => env('FCM_SERVER_KEY_ANDRO'), //the problem is here
'sender_id' => env('FCM_SENDER_ID'),
'server_send_url' => 'https://fcm.googleapis.com/fcm/send',
'server_group_url' => 'https://android.googleapis.com/gcm/notification',
'timeout' => 30.0, // in second
],
];我在server_key上使用FCM_SERVER_KEY_ANDRO的时候遇到了问题,IOS的推送通知不起作用。但当我在server_key上使用FCM_SERVER_KEY_IOS时,推送通知在IOS中可以使用,但在Android中就不行了。我不能为关键的安卓或关键的ios在http上添加新参数。
我想在fcm.php上同时运行FCM_SERVER_KEY_ANDRO和FCM_SERVER_KEY_IOS,但我不知道如何同时运行这两个系统?
很抱歉我的语法不好
发布于 2019-12-23 14:58:39
你可以在android上使用config(['fcm.http.server_key' => env('FCM_SERVER_KEY_ANDROID')]);,在iOS上使用config(['fcm.http.server_key' => env('FCM_SERVER_KEY_ANDROID')]);,但你需要分离这两个函数才能工作。您可以将此代码放在$downstreamResponse = FCM::sendTo($token, $option, $notification, $data);之前
下面是示例:
public function ios($data, $notifications, $token)
{
config(['fcm.http.server_key' => env('FCM_SERVER_KEY_IOS')]);
......
......
$downstreamResponse = FCM::sendTo($token, $option, $notification, $data);
return response()->default(200, 'Sent', $downstreamResponse);
}
public function android($data, $notifications, $token)
{
config(['fcm.http.server_key' => env('FCM_SERVER_KEY_ANDROID')]);
......
......
$downstreamResponse = FCM::sendTo($token, $option, $notification, $data);
return response()->default(200, 'Sent', $downstreamResponse);
}https://stackoverflow.com/questions/59449551
复制相似问题