开发者

ID not integer... EasyAPNS

开发者 https://www.devze.com 2023-01-28 23:40 出处:网络
I have a method that get\'s all devices that share a specific ID. Foreach of those device UID\'s, I am trying to send a APN (Apple Push Notification) using the easyAPN\'s class.

I have a method that get's all devices that share a specific ID. Foreach of those device UID's, I am trying to send a APN (Apple Push Notification) using the easyAPN's class.

The method that is having the problem is $apns->newMessage($id);

It seems to think I am not passing a valid integer for $id.

The $id is an array like so Array ( [0] => 1 )

I have also tried passing just the value of the array like so $apns->newMessage($id[0]).

No matter what I do.. I keep getting this error...

"Notice: TO id was not an integer. 1) Messages_model::send_apns -> File: sendMessage.php (line 28) 2) APNS::queueMessage -> File: messages_model.php (line 195) 3) APNS::_triggerError -> File: class_APN开发者_运维百科S.php (line 599)"

Here is my method... please let me know where I've gone wrong with the $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";
    }



}


Try to convert $id to integer:

...
foreach ($pids as $pid) {
  $id = intval($pid['pid']);
  print_r($id);
  //Send APN
  $apns->newMessage($id);
  ...
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号