nat*_*iyu 5 php android json firebase firebase-cloud-messaging
我正在尝试使用cron作业发送通知.我从GCM迁移到FCM.在我的服务器端,我改变了https://android.googleapis.com/gcm/send to https://fcm.googleapis.com/fcm/send
,也更新了如何请求数据变化registration_ids
来to
.检查json传递它是一个有效的json但我有一个错误Field "to" must be a JSON string
.反正有没有解决这个问题?
这是我的代码
function sendNotificationFCM($apiKey, $registrationIDs, $messageText,$id) {
$headers = array(
'Content-Type:application/json',
'Authorization:key=' . $apiKey
);
$message = array(
'to' => $registrationIDs,
'data' => array(
"message" => $messageText,
"id" => $id,
),
);
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => 'https://fcm.googleapis.com/fcm/send',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => json_encode($message)
));
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
Run Code Online (Sandbox Code Playgroud)
jay*_*i93 10
尝试明确转换$registrationIDs
为string
.
$message = array(
'to' => (string)$registrationIDs,
'data' => array(
"message" => $messageText,
"id" => $id,
),
);
Run Code Online (Sandbox Code Playgroud)
编辑答案
该'to'
参数需要string
- 这是消息的接收者.
的$registrationIDs
可通过单独的参数(如字符串数组),以'registration_ids'
将代码编辑为以下内容:
$recipient = "YOUR_MESSAGE_RECIPIENT";
$message = array(
'to' => $recipient,
'registration_ids' => $registrationIDs,
'data' => array(
"message" => $messageText,
"id" => $id,
),
);
Run Code Online (Sandbox Code Playgroud)
哪里$recipient
是
注册令牌,通知密钥或主题.
请参阅: Firebase云消息传递HTTP协议
归档时间: |
|
查看次数: |
8277 次 |
最近记录: |