Android:在线测试推送通知(Google云消息传递)[关闭]


99

更新: 不建议使用GCM,请使用FCM

我正在我的应用程序中实现Google Cloud Messaging。服务器代码尚未准备就绪,由于某些防火墙限制,在我的环境中,我无法为推送通知部署测试服务器。我要寻找的是一个在线服务器,它将向我的设备发送一些测试通知以测试我的客户端实现。


您确实删除了其他帖子,这就是为什么我在这里写的原因:-)在API 18中添加了NotificationListenerService ...只需将ID作为共享数组存储在SharedPreferences中,并在添加新ID大于所需大小时对数组大小进行逻辑处理第一个元素并取消...
Selvin

1
您可以使用pushtry.com
Arvind

Answers:


167

找到了一种非常简单的方法来执行此操作。

打开http://phpfiddle.org/

在框中粘贴以下php脚本。在php脚本集API_ACCESS_KEY中,设置设备ID(以逗号分隔)。

按F9或单击运行。

玩得开心 ;)

<?php


// API access key from Google API's Console
define( 'API_ACCESS_KEY', 'YOUR-API-ACCESS-KEY-GOES-HERE' );


$registrationIds = array("YOUR DEVICE IDS WILL GO HERE" );

// prep the bundle
$msg = array
(
    'message'       => 'here is a message. message',
    'title'         => 'This is a title. title',
    'subtitle'      => 'This is a subtitle. subtitle',
    'tickerText'    => 'Ticker text here...Ticker text here...Ticker text here',
    'vibrate'   => 1,
    'sound'     => 1
);

$fields = array
(
    'registration_ids'  => $registrationIds,
    'data'              => $msg
);

$headers = array
(
    'Authorization: key=' . API_ACCESS_KEY,
    'Content-Type: application/json'
);

$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://android.googleapis.com/gcm/send' );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
$result = curl_exec($ch );
curl_close( $ch );

echo $result;
?>

对于FCM,Google网址为:https : //fcm.googleapis.com/fcm/send

对于FCM v1,Google网址为:https : //fcm.googleapis.com/v1/projects/YOUR_GOOGLE_CONSOLE_PROJECT_ID/messages : send

注意:在Google Developer Console上创建API访问密钥时,必须使用0.0.0.0/0作为IP地址。(出于测试目的)。

如果收到来自GCM服务器的无效注册响应,请交叉检查设备令牌的有效性。您可以使用以下网址检查设备令牌的有效性:

https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=YOUR_DEVICE_TOKEN

一些响应代码:

以下是您可能从服务器收到的一些响应代码的说明。

{ "message_id": "XXXX" } - success
{ "message_id": "XXXX", "registration_id": "XXXX" } - success, device registration id has been changed mainly due to app re-install
{ "error": "Unavailable" } - Server not available, resend the message
{ "error": "InvalidRegistration" } - Invalid device registration Id 
{ "error": "NotRegistered"} - Application was uninstalled from the device

1
并非完全如此:)出于测试目的,您可以使用0.0.0.0/0 ip。它会工作。
Adnan 2014年

4
我每次都收到(带有api密钥和设备ID:错误”:“ InvalidRegistration
Leandro

4
请稍后重新生成API KEY,因为将密钥交给他们并不安全。
Flash Thunder

6
我不断收到未经授权的错误401。为什么知道?
Razel Soco 2015年

2
{“错误”:“无效令牌”,“错误说明”:“无效值”}我发现了这一点。并获取无效的注册ID。
阿南德

159

邮递员:Google Chrome扩展程序

使用邮递员发送消息而不是服务器。邮递员设置如下:

Request Type: POST

URL: https://android.googleapis.com/gcm/send

Header
  Authorization  : key=your key //Google API KEY
  Content-Type : application/json

JSON (raw) :
{       
  "registration_ids":["yours"],
  "data": {
    "Hello" : "World"
  } 
}

成功的话你会得到

Response :
{
  "multicast_id": 6506103988515583000,
  "success": 1,
  "failure": 0,
  "canonical_ids": 0,
  "results": [
    {
      "message_id": "0:1432811719975865%54f79db3f9fd7ecd"
    }
  ]
}

3
我认为这是测试GCM的最干净,最安全的解决方案。谢谢!
比安卡·丹尼库克

12
为我工作过POST!同样不要忘记在Authorization标头中包含“ key =“,而不仅仅是API_KEY
Raphael Royer-Rivard

3
@Raphael Royer-Rivard救命的人,我在授权标头中丢失了“ key =“
Khurram Shehzad 2015年

3
您可以使用Google Developer Console创建一些键。万一您不清楚,要与邮递员一起使用,您需要创建一个“服务器密钥”。
梁军

3
什么是“ registration_ids”?在哪里找到他们?
Himel Nag Rana

19

Pushwatch是我自己在Django / Python中开发的可免费使用的在线GCM和APNS推送通知测试器,因为我在处理多个项目时遇到了类似的情况。它可以发送GCMAPNS通知,还支持JSON消息以获取额外的参数。以下是测试人员的链接。

如果您有任何疑问或使用它时遇到问题,请告诉我。


1
请说明您的反对意见。
Amyth '16

1
正是我所需要的,才能正常运行(尝试了一个邮递员,虽然可以工作,但是没有打开我的应用程序时并没有导致消息出现在我的设备上。)
Greywire

嗨,Amyth,我在您的网站上收到此错误:“ HTTP错误401:传递了无效的(旧版)服务器密钥,或者未授权发送方执行请求。” 不知道该怎么办?我刚刚创建了一个Google Project,并尝试使用项目ID和SenderID的项目编号,并将您的网站添加到Google API设置中的“接受来自这些HTTP引荐来源网址(网站)的请求”中。最好的问候拉斯姆斯
锡尔

请注意,此URL不再受支持:自2018年4月10日起,谷歌已弃用GCM。GCM服务器和客户端API已弃用,将于2019年4月11日删除。GCM 信息
Stinky Towel

7

邮递员是一个很好的解决方案,php小提琴也是。但是,为避免每次都输入GCM URL和标头信息,您也可以使用此漂亮的GCM通知测试工具


2
您可以使用支持Android和iOS的在线测试仪。易于使用的简单网站pushtry.com 1.选择您的.p12文件2.输入设备令牌3 3.选择环境沙箱或生产4.输入消息5.发送
Arvind
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.