我设置了谷歌开发者控制台并启用了Google Cloud Messaging for Android。
在凭证方面,我创建了浏览器API密钥,并在引用中输入了0.0.0.0。实际上,我创建了两种类型的密钥,因为我在不同的教程中找到了不同的指示。 浏览器密钥图片 服务器密钥图片 我使用这个PHP脚本测试了密钥。
但是我使用两个密钥都得到了未授权 401 错误。
谢谢您的帮助。
在凭证方面,我创建了浏览器API密钥,并在引用中输入了0.0.0.0。实际上,我创建了两种类型的密钥,因为我在不同的教程中找到了不同的指示。 浏览器密钥图片 服务器密钥图片 我使用这个PHP脚本测试了密钥。
<?
/**
* The following function will send a GCM notification using curl.
*
* @param $apiKey [string] The Browser API key string for your GCM account
* @param $registrationIdsArray [array] An array of registration ids to send this notification to
* @param $messageData [array] An named array of data to send as the notification payload
*/
function sendNotification( $apiKey, $registrationIdsArray, $messageData )
{
$headers = array("Content-Type:" . "application/json", "Authorization:" . "key=" . $apiKey);
$data = array(
'data' => $messageData,
'registration_ids' => $registrationIdsArray
);
$ch = curl_init();
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch, CURLOPT_URL, "https://android.googleapis.com/gcm/send" );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($data) );
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
?>
<?
// Message to send
$message = "the test message";
$tickerText = "ticker text message";
$contentTitle = "content title";
$contentText = "content body";
$registrationId = '372CBFD0C4BFE728';
$apiKey = "AIzaSyDeNN1XJBFGE_lJ_35VMUmx5cUbRCUGkjo";
$response = sendNotification(
$apiKey,
array($registrationId),
array('message' => $message, 'tickerText' => $tickerText, 'contentTitle' => $contentTitle, "contentText" => $contentText) );
echo $response;
?>
我希望能获得类似的东西
{"multicast_id":6782339717028231855,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}
但是我使用两个密钥都得到了未授权 401 错误。
谢谢您的帮助。