私はこれを理解しようとしてぐるぐる回っています。iOS でプッシュ通知が正常に機能するようになり、Android GCM で同じことをしようとしています。ユーザーの登録 ID を収集できるサービスを公開する方法に行き詰まっています。私のサーバーではJavaを使用するのは本当に苦痛なので、phpのみのソリューションが役立ちます。私の通知スクリプトはこれまでのところ次のようになっています。
require_once('config.php');
require_once 'Zend/Mobile/Push/Gcm.php';
require_once 'Zend/Mobile/Push/Message/Gcm.php';
$con = mysql_connect($CONFIG['db']['host'] , $CONFIG['db']['user'], $CONFIG['db']['pass']);
if (!$con) {
echo "DBConnectionError: Could not connect to database";
}
$db = mysql_select_db($CONFIG['db']['database'], $con);
if (!$db) {
echo "DBSelectError: Could not select database";
}
// optain list of devices to send pn to
$qt = "SELECT uid userid, apntoken "
. "FROM members "
. "WHERE apntoken IS NOT NULL "
. "AND uid IN ("
. "SELECT fuid userid "
. "FROM avail "
. "WHERE apnsent IS NOT TRUE "
. "UNION "
. "SELECT uid userid "
. "FROM availbinary "
. "WHERE apnsent IS NOT TRUE "
. ") ";
//send gcm message
$message = new Zend_Mobile_Push_Message_Gcm();
$message->setId(time());
$message->addToken($tokenRec['apntoken']);
$message->setData($alert);
$gcm = new Zend_Mobile_Push_Gcm();
$gcm->setApiKey('AIzaSyCxxxxxxxxxxxxxxxnFn5mGkM');
try {
$response = $gcm->send($message);
} catch (Zend_Mobile_Push_Exception $e) {
// all other exceptions only require action to be sent or implementation of exponential backoff.
die($e->getMessage());
}
どんなアイデアでも大歓迎です。