使用查询使用解析发送推送通知

时间:2014-02-08 16:55:20

标签: php push parse-platform

我想使用查询发送推送通知 例如

我有这个查询

    $ages = array(18,19,20,21)
    $parseQuery = new parseQuery('_User');
    $parseQuery->whereContainedIn('age', $ages);
    $result = $parseQuery->find();

我想向他们发送推送通知 我应该使用安装还是另一种方式? 感谢

更新

我正在使用这个sdk https://github.com/apotropaic/parse.com-php-library

从我返回的代码列表中我将向他们发送通知 我想将推送通知发送到_User类

1 个答案:

答案 0 :(得分:6)

您似乎正在使用parseQuery来检索具有您指定的年龄限制的用户。根据文档,在$result中获得用户数据后,您可以使用curl发送推送通知。

以下是我在网络上找到的一些代码,应该很容易将其用于现有代码,以便向您检索到的用户发送推送通知。

<?php

$APPLICATION_ID = "xxxxxxxx";
$REST_API_KEY = "xxxxxxxxx";
$MESSAGE = "your-alert-message";

$url = 'https://api.parse.com/1/push';
$data = array(
    'channel' => '',
    'type' => 'android',
    'expiry' => 1451606400,
    'where' => array(
      'age' => array('$in' => array(18,19,20,21))
    ),
    'data' => array(
        'alert' => 'greetings programs',
    ),
);
$_data = json_encode($data);
$headers = array(
    'X-Parse-Application-Id: ' . $APPLICATION_ID,
    'X-Parse-REST-API-Key: ' . $REST_API_KEY,
    'Content-Type: application/json',
    'Content-Length: ' . strlen($_data),
);

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $_data);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_exec($curl);

值得注意的是,你需要php-curl来实现这一点。如果您还没有它,install or enable就很容易了。或者,如果你想使用开箱即用的东西,你可以使用file_get_contents来实现同样的目的。

修改:我已使用您在问题中定义的约束更新了$data数组。您不需要使用parseQuery来查找具有更新代码的用户。你有效地告诉Parse在调用中应用约束。

更新2 :我还没有测试过这段代码,但是库让我们可以非常直接地在README中进行设置。该库只是使用下面的卷曲,所以你可以使用更方便的。

$parse = new parsePush('Sample push message');
$parse->where = array(
  'age' => array('$in' => array(18,19,20,21))
);
//create acl
$parse->ACL = array("*" => array("write" => true, "read" => true));
$r = $parse->send();