我有一个用于两个不同应用程序的laravel api,它们具有不同的onesignal密钥,我想知道是否有可能根据我要使用的密钥发送推送通知。
在配置/服务中,我拥有:
'onesignal' => [
'app_id' => env('ONESIGNAL_APP_ID_1'),
'rest_api_key' => env('ONESIGNAL_REST_API_KEY_1')
],
在.env中,我有两个键,如何切换它们?
ONESIGNAL_APP_ID_1='xxx'
ONESIGNAL_REST_API_KEY_1='xxx'
ONESIGNAL_APP_ID_2='yyy'
ONESIGNAL_REST_API_KEY_2='yyy'
好吧,我从github中的kikutou找到了解决方案,解决方案:
我制作了两个频道,并从onesignal扩展到原始频道
namespace App\Channels;
use Berkayk\OneSignal\OneSignalClient;
use NotificationChannels\OneSignal\OneSignalChannel;
class OneSignalFirstChannel extends OneSignalChannel
{
public function __construct()
{
$oneSignal = new OneSignalClient(env("FIRST_ONESIGNAL_APP_ID"), env("FIRST_ONESIGNAL_REST_API_KEY"),null);
parent::__construct($oneSignal);
}
}
和
namespace App\Channels;
use Berkayk\OneSignal\OneSignalClient;
use NotificationChannels\OneSignal\OneSignalChannel;
class OneSignalSecondChannel extends OneSignalChannel
{
public function __construct()
{
$oneSignal = new OneSignalClient(env("Second_ONESIGNAL_APP_ID"), env("Second_ONESIGNAL_REST_API_KEY"),null);
parent::__construct($oneSignal);
}
}
最后使用通知
public function via($notifiable)
{
return [OneSignalFirstChannel::class, OneSignalSecondChannel::class];
}