Идентификатор не целое число ... EasyAPNS - PullRequest
0 голосов
/ 04 декабря 2010

У меня есть метод, который получает все устройства, которые имеют определенный идентификатор.Для каждого UID устройства я пытаюсь отправить APN (Apple Push Notification) с помощью класса easyAPN.

Метод, в котором возникла проблема: $ apns-> newMessage ($ id);

Кажется, мне кажется, что я не передаю действительное целое число для $ id.

$ id - это массив, аналогичный Array ([0] => 1)

У меня также естьпопытался передать только значение массива, например, $ apns-> newMessage ($ id [0]).

Независимо от того, что я делаю .. Я продолжаю получать эту ошибку ...

"Примечание: идентификатор TO не был целым числом. 1) Messages_model :: send_apns -> Файл: sendMessage.php (строка 28) 2) APNS :: queueMessage -> Файл: messages_model.php (строка 195) 3) APNS :: _ triggerError-> Файл: class_APNS.php (строка 599) "

Вот мой метод ... пожалуйста, дайте мне знать, где я ошибся с $ id.

function send_apns($data)
{
    include 'apn_classes/class_DbConnect.php';
    include 'apn_classes/class_APNS.php';

    $message = new Messages_model();
    $db = new DbConnect();
    $db->show_errors();
    $apns = new APNS($db);

    //get uid's for aid
    $sql = "SELECT `devices`.`uid` FROM `devices` WHERE `devices`.`aid` = '".$data['target']."'";
    //echo $sql;
    $query = mysql_query($sql);
    if(mysql_num_rows($query))
    {
    while($uid_data = mysql_fetch_array($query))
        $uids[] = array(
            "uid" => $uid_data['uid']
        );
    }

    //make sure there is a uid
    if(!empty($uids))
    {
        //check the device apn pid
        foreach($uids as $uid)
        {
            $sql = "SELECT `apns_devices`.`pid` FROM `apns_devices` WHERE `apns_devices`.`deviceuid` = '".$uid['uid']."'";
            //echo "$sql";
            $query = mysql_query($sql);
            if(mysql_num_rows($query) > 0)
            {
                while($pid_data = mysql_fetch_array($query))
                {
                    $pids[] = array(
                        "pid" => $pid_data['pid'],
                    );

                    if(!empty($pids))
                    {
                        foreach ($pids as $pid)
                        {
                            $id = array($pid['pid']);
                            print_r($id);
                            //Send APN
                            $apns->newMessage($id[0]);
                            $apns->addMessageBadge(128);
                            $apns->addMessageAlert($data['message']);
                            $apns->addMessageSound('chime');
                            //$apns->addMessageCustom('acme2');
                            $apns->queueMessage();
                            $apns->processQueue();
                        }
                    }                   
                }
            }
        }

    }
    else 
    {
        echo "Device Does not Exist";
    }



}

1 Ответ

1 голос
/ 04 декабря 2010

Попробуйте преобразовать $ id в целое число:

...
foreach ($pids as $pid) {
  $id = intval($pid['pid']);
  print_r($id);
  //Send APN
  $apns->newMessage($id);
  ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...