我正在开发一个需要获取推送通知的应用程序
我无法让PushWoosh工作(设备成功登录,但是没有订阅者),所以与我一起工作的人选择配置自己的服务器以将通知发送到GCM。
PHP注册代码如下:
require_once('loader.php');
// return json response
$json = array();
$nameUser = $_POST["name"];
$nameEmail = $_POST["email"];
// GCM Registration ID got from device
$gcmRegID = $_POST["regId"];
/**
* Registering a user device in database
* Store reg id in users table
*/
if (isset($nameUser)
&& isset($nameEmail)
&& isset($gcmRegID)) {
// Store user details in db
$res = storeUser($nameUser, $nameEmail, $gcmRegID);
$registatoin_ids = array($gcmRegID);
$message = array("product" => "shirt");
$result = send_push_notification($registatoin_ids, $message);
echo $result;
} else {
// user details not found
}
根据我们从中获取php代码的示例,如果我使用本机代码编写,则需要执行以下操作:
void register(final Context context, String name, String email, final String regId) {
Log.i(Config.TAG, "registering device (regId = " + regId + ")");
String serverUrl = Config.YOUR_SERVER_URL;
Map<String, String> params = new HashMap<String, String>();
params.put("regId", regId);
params.put("name", name);
params.put("email", email);
long backoff = BACKOFF_MILLI_SECONDS + random.nextInt(1000);
// Once GCM returns a registration id, we need to register on our server
// As the server might be down, we will retry it a couple
// times.
for (int i = 1; i <= MAX_ATTEMPTS; i++) {
Log.d(Config.TAG, "Attempt #" + i + " to register");
try {
//Send Broadcast to Show message on screen
displayMessageOnScreen(context, context.getString(
R.string.server_registering, i, MAX_ATTEMPTS));
// Post registration values to web server
post(serverUrl, params);
..........
....
我猜电晕的相当于post(serverUrl, params);
是network.request(serverURL,"POST",listener,params)
我已经试图以不同的方式发送了好几次,但我总是从服务器获取同样的错误。
[Sun Jun 08 19:36:30 2014] [error] [client 181.55.xxx.xxx] PHP Notice: Undefined index: name in /var/www/html/vhosts/vps44.econfe.com/htdocs/app/push/register.php on line 7
[Sun Jun 08 19:36:30 2014] [error] [client 181.55.xxx.xxx] PHP Notice: Undefined index: email in /var/www/html/vhosts/vps44.econfe.com/htdocs/app/push/register.php on line 8
[Sun Jun 08 19:36:30 2014] [error] [client 181.55.xxx.xxx] PHP Notice: Undefined index: regId in /var/www/html/vhosts/vps44.econfe.com/htdocs/app/push/register.php on line 11
我在电晕中的最后一次尝试是:
local commands_json = {
["email"] = "test@test",
["name"] = system.getInfo("deviceID"),
["regId"] = DeviceID
}
local post_body = json.encode( commands_json )
local headers = {}
headers["Content-Type"] = "application/json"
headers["Accept-Language"] = "en-US"
local params = {}
params.headers = headers
params.body = post_body
params.progress = "download"
network.request ( SERVER_URL, "POST", networkListener, params )
这是我第一次使用互联网服务,我以前从未发送过或接收过任何东西(或者很多年前只是一次),所以我可能忽略了一些非常简单的内容,因此对您的帮助或建议深表感谢。
我什至不知道我是否应该使用此json东西,我尝试将其删除(在这种情况下我不知道如何处理标头),但发生了相同的事情,我在使用它是因为在Pushwoosh的Corona示例中是否存在(同样,该示例对我不起作用)
好吧,在尝试以多种不同的格式发送信息之后,我偶然发现了该解决方案。1:我不需要使用json编码。2:变量必须在一个字符串中,并用符号“&”分隔
local headers = {}
headers["Content-Type"] ="application/x-www-form-urlencoded"
headers["Accept-Language"] = "en-US"
local body="name="..system.getInfo("deviceID").."&email=test@test®Id="..DeviceID
local params = {}
params.headers = headers
params.body = body
network.request ( SERVER_URL, "POST", networkListener, params )
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句