Corona SDK(LUA)如何向php脚本发送请求以注册设备以获取通知?

杰拉多·加拉扎(Gerardo Galarza)

我正在开发一个需要获取推送通知的应用程序

我无法让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示例中是否存在(同样,该示例对我不起作用)

杰拉多·加拉扎(Gerardo Galarza)

好吧,在尝试以多种不同的格式发送信息之后,我偶然发现了该解决方案。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&regId="..DeviceID
        local params = {}
        params.headers = headers
        params.body = body

        network.request ( SERVER_URL, "POST", networkListener, params )

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Lua导航在Corona

来自分类Dev

Corona SDK表

来自分类Dev

Corona / Lua:屏幕过渡无效

来自分类Dev

Corona SDK中的水平ScrollView

来自分类Dev

Corona SDK OpenSSL插件问题

来自分类Dev

Corona SDK的后台服务

来自分类Dev

Corona SDK Director类错误

来自分类Dev

Corona SDK OpenSSL插件问题

来自分类Dev

Corona SDK中的字体问题

来自分类Dev

如何检查Corona CAR文件?

来自分类Dev

Lua中的OOP和eventListener(Corona SDK)

来自分类Dev

创建随机图像Corona SDK Lua

来自分类Dev

Lua在Corona SDK混乱中的位置

来自分类Dev

Lua在Corona SDK混乱中的位置

来自分类Dev

Corona SDK / Lua无法使用外部模块

来自分类Dev

Corona SDK:如何识别碰撞对象?

来自分类Dev

在Corona SDK中,如何停止功能?

来自分类Dev

如何使用Lua for Corona SDK随机生成数字

来自分类Dev

如何使newWebView缩放以适合Corona SDK中不同设备的屏幕?

来自分类Dev

Corona SDK如何向DisplayObject添加自定义方法

来自分类Dev

Corona SDK如何向DisplayObject添加自定义方法

来自分类Dev

Lua / Corona字符串文字

来自分类Dev

Corona LUA中功能的正确代码安排

来自分类Dev

Corona SDK InAPP还原并消除误导现象

来自分类Dev

Corona SDK event.target触摸/点击

来自分类Dev

简单的Corona SDK应用-触摸事件

来自分类Dev

适用于Mac的IDE for Corona SDK

来自分类Dev

在Corona SDK中实现事件记录

来自分类Dev

Corona SDK偏移量不好