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 应用引擎的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 上不使用 GCM 接收推送通知

什么是 GCM 注册 ID?

无法使用 XMPPHP 将我的应用服务器连接到 GCM 的 CCS [关闭]

GCM Phonegap,如何将消息发送到手机的核心通知

后台 IOS / php 服务器中的 GCM 通知

无法接收 GCM 通知?