Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法向设备发送C2DM消息_Php_Android_Google Cloud Messaging - Fatal编程技术网

Php 无法向设备发送C2DM消息

Php 无法向设备发送C2DM消息,php,android,google-cloud-messaging,Php,Android,Google Cloud Messaging,我是android新手,我正在尝试在我的应用程序中开发推送通知 我读了很多文章,能够生成设备注册密钥和身份验证密钥 但当我尝试向设备发送推送通知消息时,我收到了以下消息 <HTML> <HEAD> <TITLE>Unauthorized</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000"> <H1>Unauthorized</H1> <H

我是android新手,我正在尝试在我的应用程序中开发推送通知

我读了很多文章,能够生成设备注册密钥和身份验证密钥

但当我尝试向设备发送推送通知消息时,我收到了以下消息

<HTML>
<HEAD>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>

未经授权
未经授权
错误401
下面是我用来发送消息的php代码:

function sendMessageToPhone($authCode, $deviceRegistrationId, $msgType, $messageText) {

$headers = array('Authorization: GoogleLogin auth=' . $authCode);
$data = array(
    'registration_id' => $deviceRegistrationId,
    'collapse_key' => $msgType,
    'data.message' => $messageText //TODO Add more params with just simple data instead           
);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://android.apis.google.com/c2dm/send");
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, $data);


$response = curl_exec($ch);

curl_close($ch); 

echo "<pre>";
print_r($response); die;

}

sendMessageToPhone($auth_token, $device_id , "UTF-8","hello");
函数sendMessageToPhone($authCode、$deviceRegistrationId、$msgType、$messageText){
$headers=array('Authorization:GoogleLogin auth='。$authCode);
$data=数组(
“注册id”=>$deviceRegistrationId,
“折叠键”=>$msgType,
'data.message'=>$messageText//TODO只使用简单数据添加更多参数
);
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,”https://android.apis.google.com/c2dm/send");
如果($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,$data);
$response=curl\u exec($ch);
卷曲关闭($ch);
回声“;
打印($response);死亡;
}
sendMessageToPhone($auth_token,$device_id,“UTF-8”,“hello”);

我还通过emaid启用了“Google Cloud Messaging for Android”服务,我曾使用该服务生成身份验证令牌。

这是错误的方法,因为您尝试使用G2DM。G2DM已被弃用


这是一个非常好的GCM教程。您可以在30分钟内设置推送通知

嗨,mferhan,非常感谢。现在对我来说很好。这篇文章真的很有用。谢谢