我真的很奇怪。昨天atfernoon我意识到我的Chrome扩展程序没有收到我服务器发送的Firebase Cloud Messages。我尝试创建一个新的Chrome扩展程序,其中只包含GCM API和带有邮件发件人的简单服务器页面,但它仍无效。
突然它再次开始工作,我收到了那段时间发送的所有消息!我认为这是一个服务器问题,好吧。今天早上它工作得很好。但是,下午,它停了下来!我不知道该怎么做,我几个月来一直在使用Chrome扩展程序与GCM API,而以前从未发生过。
我的扩展名:
的manifest.json
{
"name": "__MSG_myextension__",
"version": "1.3",
"icons": {
"128": "images/my-icon.png"
},
"permissions": [
"background",
"gcm",
"storage"
],
"background": {
"scripts": ["background.js"]
},
"manifest_version": 2,
"default_locale" : "en"
}
background.js(是的,我是从here复制的)
function registerCallback(registrationId) {
console.log(registrationId);
if (chrome.runtime.lastError) {
console.log(chrome.runtime.lastError);
return;
}
}
var senderIds = ["MY-SENDER-ID"];
chrome.gcm.register(senderIds, registerCallback);
chrome.gcm.onMessage.addListener(function(message) {
console.log(message);
});
我的服务器:
$registration_id = '...';
$key = '...';
$message = '{"collapse_key":"'.time().'","data":{"message":"hello world"},"priority":"high","registration_ids":["'.$registration_id.'"]}';
$headers = array(
'Content-Type: application/json; charset=UTF-8',
'Authorization:key=' . $key );
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://fcm.googleapis.com/fcm/send");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');
curl_setopt($ch, CURLOPT_POSTFIELDS, $message);
$result = curl_exec($ch);
var_dump($result);
由于我的卷曲,我总是成功。 我很确定我正在将消息发送到正确的注册ID。 有人可以帮助我吗?