<?
//구글에서 Auth 값 얻어오기
$data = "&accountType=HOSTED_OR_GOOGLE&Email=아이디@gmail.com&Passwd=비밀번호&service=ac2dm&source=test-1.0";
$host = "www.google.com";
$path = "/accounts/ClientLogin";
$fp = fsockopen("ssl://".$host, 443, $errno, $errstr, 30);
if($fp) {
fputs($fp, "POST $path HTTP/1.0\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "User-Agent: PHP Script\r\n");
fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-Length: " . strlen($data) . "\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data . "\r\n\r\n");
$data = '';
while (!feof($fp)) {
$data .= fgets($fp);
}
fclose($fp);
} else {
//error
echo "$errstr ($errno)\n";
return 0;
}
$response = split("\r\n\r\n", $data);
$header = $response[0];
$responsecontent = $response[1];
if(!(strpos($header,"Transfer-Encoding: chunked")===false)) {
$aux=split("\r\n",$responsecontent);
for($i=0;$i<count($aux);$i++)
if($i==0 || ($i%2==0))
$aux[$i]="";
$responsecontent=implode("",$aux);
}
$tmp = split("Auth=",$responsecontent);
$result = $tmp[1];
//얻어온 Auth 값 토대로 Device에 PUSH하기
$auth = "registration 아이디";
$data = "registration_id=".$auth."&collapse_key=1&data.msg=$msg";
echo $msg;
$host = "android.apis.google.com";
$path = "/c2dm/send";
$fp = fsockopen("ssl://".$host, 443, $errno, $errstr, 30);
if($fp)
{
fputs($fp, "POST $path HTTP/1.0\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-Length: " . strlen($data) . "\r\n");
fputs($fp, "Authorization: GoogleLogin auth={$result}\r\n");
fputs($fp, $data . "\r\n\r\n");
$data = '';
//while (!feof($fp)) {
// $data .= fgets($fp, 4096);
//}
fclose($fp);
} else {
//error
echo "$errstr ($errno)\n";
return 0;
}
?>
서버쪽 php 소스입니다.
굵게 표시한 부분의 $msg 변수가 메시지를 넣는 부분입니다.
영어로 보내면 받는쪽에서 잘나오는데 한글로 보내면 아무런 메시지도 보이지 않아요
인코딩을 해야 한다고 하던데
인코딩을 보내는쪽 php에서 해서 보내야 되는건지
아니면 혹시 받는건 안드로이드 Receiver쪽에서 하고 있는데 그쪽에서 인코딩을 해야 하는건지
인코딩을 한다면 어떤식으로 하는건지 제가 php는 워낙 문외한이라서 ㅠ. 도움의 손길이 필요합니당!.




인코딩을 폰에서 보낼때 인코딩이랑 pfp에서 받을때 인코딩, php에서 보낼때 인코딩이랑 폰에서 받을때 인코딩 모두 같아야 합니다.
인코딩 문제 때문에 밤센 기억이 나네요 -_-;;