Идентификатор не целое число ... EasyAPNS

0

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

Метод, который имеет проблему, - $apns- > newMessage ($ id);

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

$id - массив, подобный массиву ([0] = > 1)

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

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

"Обратите внимание: TO id не был целым числом. 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 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";
    }



}
Теги:
iphone

1 ответ

1
Лучший ответ

Попробуйте преобразовать $id в integer:

...
foreach ($pids as $pid) {
  $id = intval($pid['pid']);
  print_r($id);
  //Send APN
  $apns->newMessage($id);
  ...
  • 0
    Работал отлично! Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню