gpt4 book ai didi

php - Android 推送通知 PHP 代码在 3rd 方服务器中不工作,在本地服务器中工作

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:46 24 4
gpt4 key购买 nike

我只是想用 Android 推送通知 (C2DM) 测试一个应用程序,我确信 Android 代码没有任何问题。我正在使用 PHP 代码连接到推送服务器并发送消息,它在我的本地服务器上运行良好。

但如果我在第三方服务器上运行相同的程序,它就不会运行。它没有给我任何错误消息。并显示“HTTP 状态 200 OK”作为响应。

为了您的引用,我正在添加代码,我是从某个网站获得的。

<?php    
$username ="push_enabled_email_id@gmail.com";
$password = "password";
$source="My-Server-Event-Alerter"; //anything that says about ur app
$service="ac2dm";

// local server
$message =$_GET ['message'];

if ($_GET ['message'] != '' )
{
$message =$_GET ['message'];
echo 'Message sent to server '.$message;

$post_params = array(
"Email" => $username,
"Passwd" => $password,
"accountType"=>"HOSTED_OR_GOOGLE",
"source" => $source,
"service"=>$service
);

$first = true;
$data_msg = "";

foreach ($post_params as $key => $value)
{

if ($first)
$first = false;
else
$data_msg .= "&";

$data_msg .= urlencode($key) ."=". urlencode($value);
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin");

$data = array(
'accountType' => HOSTED_OR_GOOGLE,
'Email' => $username,
'Passwd' => $password,
'source'=> $source,
'service'=>$service
);

curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

// for debugging the request
//curl_setopt($ch, CURLINFO_HEADER_OUT, true); // for debugging
$response = curl_exec($ch);

curl_close($ch);
echo $response;
$pos = strpos($response, "Auth=");
$authKey = trim(substr($response, 5+$pos));
echo $authKey;

echo 'Device Token: '. $deviceToken . '';
$data = array(
'registration_id' => $deviceToken,
'collapse_key' => 'ck_' . 'col_key',
'data.message' => $message,
'data.title' =>'Request Push Demo'
);

//$data = (is_array($data)) ? http_build_query($data) : $data;

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://android.apis.google.com/c2dm/send");
echo 'Content-Length:'.strlen($data);
$headers = array('Authorization: GoogleLogin auth=' . $authKey,'Content-Length:'.strlen($data));
if($headers)
{
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
$messagedata = curl_exec($ch);
//var_dump(curl_getinfo($ch)); //for debugging the request
//var_dump($messagedata);
// echo $messagedata;
curl_close($ch);
}
?>



<html>
<form action ="./c2dmtest2.php" method="get" enctype="application/x-www-form-urlencoded" name="Send Notification" target="_self">
<label>Push Message
<input name="message" type="text" size="50" maxlength="50"></label>
<input name="Send Message" type="submit" value="Send Message">
</form>
</html>

最佳答案

您能否在代码顶部添加以下行,以便查看潜在的错误:

error_reporting(E_ALL);
ini_set('display_errors', '1');

关于php - Android 推送通知 PHP 代码在 3rd 方服务器中不工作,在本地服务器中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7238800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com