android - 谷歌云消息不发送通知

标签 android google-cloud-messaging

大家好,我可以从 GCM 云获取 token 并将其存储到我的数据库中,但是当我要发送有关相关 token 的通知时,它的输出类似于 {“multicast_id”:8449678444605960595,“成功”:0,“失败”:1,“canonical_ids”:0,“结果”:[{“错误”:“NotRegistered”}]}

I don't see error in code but if any one of you know please help me.I am not uploading my code because i think it doesn't have any logical error.but if any of you want so i am uploading my php script here

phpScript

 <?php
    //request url
    $url    = 'https://android.googleapis.com/gcm/send';

     $registrationIDs=array();
     $index=0;

    $host = "mysql7.000webhost.com"; 
        $dbname = "a1861947_lalitdb";     
        $username = "a1861947_lalit12"; 
        $password = "kush123"; 

       $con=mysqli_connect($host,$username,$password,$dbname);




    $apiKey = 'AIzaSyCL-BT0xo6RVB-eLeYKjH-g0n_CdjM9kN0';
     $querySelect="Select Token from token_reg";
         $result=mysqli_query($con,$querySelect);


           while($record = mysqli_fetch_array($result))
            {
                 $registrationIDs[$index++]=$record['Token'];
                }

    //payload datad
    $data   = array('Demo'=>'Accenture ne Pinnacle Bna Diya');

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

    //http header
    $headers = array('Authorization: key='. $apiKey,
                     'Content-Type: application/json');
      $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);

            // Disabling SSL Certificate support temporarly
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
      $result = curl_exec($ch);
            if ($result === FALSE) {
                die('Curl failed: ' . curl_error($ch));
            }

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

    ?>

//token_reg表有GCM发送的token

最佳答案

您在多播 ID 中传递的值看起来不像是有效的 GCM token 。 GCM token 比您拥有的要长得多,通常包含字母数字和一些特殊字符。

如果您正确注册了您的设备,则可能是保存此 token 的代码中存在错误。

关于android - 谷歌云消息不发送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36665004/

相关文章:

android - WorkManager alpha10 ListenableFuture 用法

android - 如何将数据从 Android 设备存储到我的服务器?

java - 无法解析符号 'from'

android - GCM 和 PARSE 推送消息的区别

android - GCM : Retry-After header

java - 在服务器中从 gcm 迁移到 fcm

Android:Dx 写输出有问题:已经准备好了

android - 尝试访问 Google Fit API 时出现异常 - 用户必须登录才能进行此 API 调用

ios - Swift Bundle ID 错误中的 GCM

android - GCM 3.0 - gcm 不会自动显示带有通知参数的通知