<HTML>
<HEAD>
<TITLE>GuestBook</TITLE>
<meta http-equiv="content-Type" content="text/html" charset="utf-8">
</HEAD>
<BODY BGCOLOR="#006699" LINK="#99CCFF" VLINK="#99CCCC" TEXT="#FFFFFF">
<center>
<br><p>
<?
$apiKey = "AIzaSyAwhIjAqve0UP91qse-iL6f41Vu1s6gMTg";
$message = $_POST['message'];
echo("
<FORM name='form' method='post' action='$PHP_SELF'>
<TABLE border='0' cellspacing='1'>
<TR>
<TD width='109' bgcolor='#5485B6'><P align='center'><FONT face='굴림' size='2' color='#CDDAE4'>
message</FONT></TD>
<TD width='541'><P> <INPUT type='text' name='message' SIZE=25 MAXLENGTHTH='20'></TD>
</TR>
<TR>
<TD><P> </TD>
<TD><P> <INPUT type='submit' name='submit' value='sendMessage'></TD>
</TR>
</TABLE>
<input type=hidden name=mode value='up'>
</FORM>");
if ($mode == 'up') {
$messageData = addslashes($message);
sendNotification($apiKey,$messageData);
}
function sendNotification( $apiKey, $messageData )
{
$headers = array('Content-Type:application/json ; charset=utf-8', 'Authorization:key=AIzaSyAwhIjAqve0UP91qse-iL6f41Vu1s6gMTg');
$connect = mysql_connect("165.229.88.50","ID","PASSWORD") or die("SQL server에 연결할 수 없습니다.");
mysql_select_db("gcm",$connect);
$result = mysql_query("SELECT gcm_regid FROM gcm_users");
$conidx=0;
$arr = array();
$arr['data'] = array();
$arr['data']['msg'] = $messageData;
$arr['registration_ids'] = array();
while($row = mysql_fetch_array($result))
{
$arr['registration_ids'][$conidx] = $row['reg_id'] ;
$conidx++;
}
mysql_close($connect);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://android.googleapis.com/gcm/send');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS,json_encode($arr));
$response = curl_exec($ch);
echo $response;
curl_close($ch);
//return $response;
}
echo("
<p>
</BODY>
</HTML>");
?>
안드로이드 하이브의 GCM Tutorial로 구성 되 있는 푸쉬 어플이 있습니다. 단일 전송은 잘 되구요. 다중전송을 해야하는데
여기서 문제가 생기네요. 위 소스는 안드로이드 하이브의 소스가 아닌 다른 분의 소스이구요. 현재 DB에 유저의 REGID가 쌓이는 DB는 안드로이드 하이브의 질의로 만든 DB 입니다.
CREATE TABLE IF NOT EXISTS `gcm_users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`gcm_regid` text,
`name` varchar(50) NOT NULL,
`email` varchar(255) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
위 부분이 안드로이드 하이브의 질의 내용들이구요.
여기서 Multicast를 위해 위 소스를 고쳐야 하는 부분이 있나요?? 제 생각입니다만 DB 세부정보 때문에 접근을 못하는것 같아서요.