2012-05-18 1 views
0

Я использую код для отправки push-сообщения с использованием php здесь, это мой код.Ошибка 401 при отправке push-сообщения с использованием php для устройства android

<?php 
if($_POST['message']) 
{ 

$username ="email address"; 
$password = "password"; 
$source="Koti-Link-8"; 
$service="ac2dm"; 
$post_params = array ("Email" => $username, "Passwd" => $password, "accountType"=>"HOSTED_OR_GOOGLE", "source" => $source, "service"=>$service); 

$first = true; 
      $data_msg = ""; 

      foreach ($post_params as $key => $value) { 
      if ($first) 
       $first = false; 
      else 
       $data_msg .= "&"; 

      $data_msg .= urlencode($key) ."=". urlencode($value); 
      } 

      $x = curl_init("https://www.google.com/accounts/ClientLogin"); 

      curl_setopt($x, CURLOPT_HEADER, 1); 
      curl_setopt($x, CURLOPT_POST, 1); 
      curl_setopt($x, CURLOPT_POSTFIELDS, $data_msg); 
      curl_setopt($x, CURLOPT_RETURNTRANSFER, 1); 
      $response = curl_exec($x); 
      curl_close($x); 

      echo $response; 
$pos = strpos($response, "Auth="); 
$authKey = trim(substr($response, 5+$pos)); 

$message=$_POST['message']; 


$deviceToken="APA91bEuHNZyyPpczB4NJL-kXitE9-vTti6za3o7x9tA7AjzJIUagHBYteXFUSgcoubrUmg8vVmnLn07XuAzJtgsIs74Q-T33-Vmvo-08C_mh2BMCfr1m5I0rrixT0ymywa3bkqFQEo3KhapTq6Okevvs3ZzoOUGTg"; 
$col_key=date('Y-m-d H:i:s'); 
$data = array(
'registration_id' => $deviceToken, 
'collapse_key' => 'ck_' .$col_key, 
'data.message' => $message, 
'data.title' =>'Requestec Push Demo'); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://android.apis.google.com/c2dm/send"); 
echo 'Content-Length:'.strlen($data); 
    $headers = array('Authorization: GoogleLogin auth=' . $authKey); 
             if($headers){ 
              curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
             } 
             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
             curl_setopt($ch, CURLOPT_POST, true); 
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
             curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 

             $messagedata = curl_exec($ch); 
             echo $messagedata."<br>"; 
             $success="Sent Successfully"; 
             curl_close($ch); 

} 

?> 

Но при использовании он показывает 401 сообщений об ошибке от C2DM сервера, где проблема и как я могу решить it.Please помочь мне

ответ

0

401 это означает несанкционированный. Введенные данные посетителя не были приняты. Вы должны проверить все заголовки, которые отправляют сервер. Может быть, что-то не так.

Смежные вопросы