【发布时间】:2015-03-12 14:04:00
【问题描述】:
我正在使用 Appengine 并使用测试脚本通过 GCM 发送消息,但它变成了 401 Unauthorized 错误。
跟随我的脚本
$url = 'https://android.googleapis.com/gcm/send';
$serverApiKey = "AIzaSyCKPMazvtdyhqhH7IdIqdHjqUtLNlHnsgA"; // API KEY SERVER
$reg = "APA91bEmal_3NpDSV5vuIysMjF8GYxO70_2Nmzx78VCSLmGpX_oX73TqfHczzjP_PgUmwYcdGz0yPGAajRLb1eP7wfzqtoADMzL1-DoCLYH9kz2dKknwcd7fZFSg_qM6Cgk_gphIRWD2FbcJZ83-ymnF1UhF40j32vYzD7WCDZnq_0-87R5Dbmk"; // 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);
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);
如果我在本地机器上做同样的测试,它可以工作,但在 appengine 上不工作
http://s3.postimg.org/ndzcfujoj/local_machine_1.png
http://s17.postimg.org/f48alja3z/local_machine_2.png
...在 appengine 中不起作用
{"registration_ids":["APA91bEmal_3NpDSV5vuIysMjF8GYxO70_2Nmzx78VCSLmGpX_oX73TqfHczzjP_PgUmwYcdGz0yPGAajRLb1eP7wfzqtoADMzL1-DoCLYH9kz2dKknwcd7fZFSg_qM6Cgk_gphIRWD2FbcJZ83-ymnF1UhF40j32vYzD7WCDZnq_0-87R5Dbmk"],"data":{"message":"Hello, World!"}}
Unauthorized
Error 401
遵循 API 设置
Key for server applications
API key
AIzaSyCKPMazvtdyhqhH7IdIqdHjqUtLNlHnsgA
IPs
Any IP allowed
Activation date
Mar 12, 2015, 2:40:00 AM
有人可以帮我吗?
【问题讨论】:
标签: android google-app-engine google-cloud-messaging unauthorized