2010-12-03 5 views
0

J'ai une méthode qui obtient tous les périphériques qui partagent un ID spécifique. Pour chacun de ces UID, j'essaye d'envoyer un APN (Apple Push Notification) en utilisant la classe easyAPN.ID non entier ... EasyAPNS

La méthode qui rencontre le problème est $ apns-> newMessage ($ id);

Il semble penser que je ne transmets pas un entier valide pour $ id.

L'$ id est un tableau comme si Array ([0] => 1)

J'ai aussi essayé passer juste la valeur du tableau comme si $ apns-> newMessage ($ id [0]) .

Peu importe ce que je fais .. Je continue à obtenir cette erreur ...

« Avis: TO id est pas un entier 1) Messages_model :: send_apns -> Fichier:. SendMessage.php (ligne 28) 2) APNS :: queueMessage -> Fichier: messages_model.php (ligne 195) 3) APNS :: _ triggerError -> Fichier: class_APNS.php (ligne 599) "

Voici ma méthode ... s'il vous plaît faites le moi savoir où je me suis trompé avec le $ 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"; 
    } 



} 

Répondre

1

Essayez de convertir $ id en nombre entier:

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

ont parfaitement fonctionné! Merci! – Peter

Questions connexes