2016-01-05 42 views
2

我正在尝试为使用php的android创建推送通知。但我坚持在某个地方。我正在使用一个例子。这是我的PHP代码使用PHP获取无效的GCM注册错误

Web配置

<?php 
/** 
* Database config variables 
*/ 
define("DB_HOST", "localhost"); 
define("DB_USER", ""); 
define("DB_PASSWORD", ""); 
define("DB_DATABASE", ""); 

/* 
* Google API Key 
*/ 
define("GOOGLE_API_KEY", "AIzaSyD_PC6UaeTbnSemX0hpY0eyawlE3EufRcA"); // Place your Google API Key 
?> 

而且我GCM.php文件是这样的

<?php 

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 

/** 
* Description of GCM 
* 
* @author Ravi Tamada 
*/ 
class GCM { 

    //put your code here 
    // constructor 
    function __construct() { 

    } 

    /** 
    * Sending Push Notification 
    */ 
    public function send_notification($registatoin_ids, $message) { 
     // include config 
     include_once './config.php'; 

     // Set POST variables 
     $url = 'https://android.googleapis.com/gcm/send'; 

     $fields = array(
      'registration_ids' => $registatoin_ids, 
      'data' => $message, 
     ); 

     $headers = array(
      'Authorization: key=' . GOOGLE_API_KEY, 
      'Content-Type: application/json' 
     ); 
     // Open connection 
     $ch = curl_init(); 

     // Set the url, number of POST vars, POST data 
     curl_setopt($ch, CURLOPT_URL, $url); 

     curl_setopt($ch, CURLOPT_POST, true); 
     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); 
     // Disabling SSL Certificate support temporarly 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

     curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); 

     // Execute post 
     $result = curl_exec($ch); 
     if ($result === FALSE) { 
      die('Curl failed: ' . curl_error($ch)); 
     } 

     // Close connection 
     curl_close($ch); 
     echo $result; 
    } 

} 

?> 

我的HTML是这个

<!DOCTYPE html> 
<html> 
    <head> 
     <title></title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function(){ 
      }); 
     </script> 
    </head> 
    <body> 
     <form name="" method="post" action="register.php"> 
      <input type="text" name="name"/> 
      <input type="text" name="email"/> 
      <input type="text" name="regId"/> 
      <input type="submit"/> 
     </form> 
    </body> 
</html> 

这其中我的代码使用但每次它告诉我信息 {“multicast_id”:4677806556758130005,“成功”:0,“失败”:1,“ca nonical_ids “:0,” 结果 “:[{” 错误 “:” InvalidRegistration“}]}

我DONOT知道我做错了什么

我越来越有GCM注册ID,我必须通过混淆。谁能告诉我这是什么,并在那里我发现它

我想我的项目ID和项目数量为,但我再次得到这个错误,并再次

任何帮助表示赞赏

感谢

+0

您的API密钥无效,这就是为什么它会给您错误 –

+0

但我从我的谷歌控制台复制它,然后粘贴它。 –

+0

请genrate新的一个。并检查它。 –

回答

0

请将您的gcm账户的服务器密钥如果没有生成请生成并传递它将有效100%

+0

我检查了它的正确 –

+0

你可以告诉我什么是注册ID?我没有得到那是什么 –

+0

注册ID是您的设备的唯一ID,您将发送推送通知和服务器密钥将设置在GOOGLE_API_KEY – jilesh