0
我嘗試使用GoogleCloudMessaging創建項目以接收來自遠程服務器的推送通知。 對於客戶我使用谷歌教程實施GCM客戶端。 對於服務器我用這個實現在PHP,但之後我開始PHP腳本,我得到了一個錯誤:GoogleCloudMessaging未經授權的錯誤401
未經授權
錯誤401
這裏是我的PHP代碼:
$url = 'https://android.googleapis.com/gcm/send';
$serverApiKey = "778688687533"; // sender id (Project Number)
$reg = "APA91bFFWLYsX8TK_XiGQJeUkHb_7FJZwZBSdnNEdxzQEQ-ijpmVvwBPxaz3wQPmWy_K6YAIYt1x_3IBDzbyALxcpmjL8mKEX7g5CV9QpXod3oFp4Hm5HqsY8snoQdua3l0NcMoHm0WE4oTbNUYcbAOE7zjJEV_p9Q"; // registration id
$headers = array(
'Content-Type:application/json',
'Authorization:key=' . $serverApiKey
);
$data = array(
'registration_ids' => array($reg),
'data' => array(
'message' => 'Hello, World!'
));
print (json_encode($data) . "\n\n");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
if ($headers)
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
print ($response);
你必須使用服務器密鑰! –
我必須使用服務器密鑰而不是項目編號嗎? 我可以在哪裏獲得/創建服務器密鑰?谷歌已改變控制檯的設計,我找不到服務器密鑰。謝謝! – Denis
我解決了這個問題。正如Sunil Mishra寫的,我不得不在我的php腳本中使用服務器密鑰而不是發件人ID(項目編號)。 – Denis