PHP GCM 应用引擎
Posted
技术标签:
【中文标题】PHP GCM 应用引擎【英文标题】:PHP GCM appengine 【发布时间】:2013-07-31 18:06:51 【问题描述】:我正在尝试使用 php 运行时在 appengine 中使用 gcm。以下是使用 URLFetch 服务的代码
$context = array("https"=>
array( "method" => "post",
"content" => json_encode($fields),
"header" => "Content-Type: application/json\r\n" .
"Authorization: key=" . GOOGLE_API_KEY . "\r\n"
)
);
$context = stream_context_create($context);
$result = file_get_contents($url, false, $context);
以下是使用 PHP Curl 的原始代码:
$ch = curl_init();
// Set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Disabling SSL Certificate support temporarly
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
// Execute post
$result = curl_exec($ch);
使用Curl的PHP代码运行良好,但是使用appengine的urlfetch服务的代码就不行了。谁能告诉我哪里做错了。
【问题讨论】:
你看到了什么错误? 我没有看到任何错误。但是“android.googleapis.com/gcm/send”被重定向到“developer.android.com/google/gcm/index.html”并且没有发送 GCM 消息 请查看我的解决方案。它正在工作:***.com/questions/17998875/… 找不到您提供的链接的页面 :( 我想这是他试图输入的链接:click here 我去了那里,也没有任何线索。我有同样的问题,正在寻找答案。 【参考方案1】:这是经过测试的代码。
公共函数 sendAndroidPushNotification($registration_ids, $message) // 在数组中添加设备令牌 $registrationIds = 数组($registration_ids); $msg = 数组( '消息' => $消息, 'title' => '通知中心', 'tickerText' => $消息, '振动' => 1, '声音' => 1, ); $字段 = 数组( 'registration_ids' => $registrationIds, '数据' => $msg ); $fields = json_encode($fields); $arrContextOptions=数组( “http” => 数组( “方法”=>“发布”, “标题” => '授权:密钥 = '。 "\r\n" 。 “内容类型:应用程序/json”。 "\r\n", “内容”=> $字段, ), “ssl”=>数组( “allow_self_signed”=>真, “verify_peer”=>假, ), ); $arrContextOptions = stream_context_create($arrContextOptions); $result = file_get_contents('https://android.googleapis.com/gcm/send', false, $arrContextOptions); 返回$结果;【讨论】:
正是我想要的,谢谢!你能更好地格式化代码吗?以上是关于PHP GCM 应用引擎的主要内容,如果未能解决你的问题,请参考以下文章