javascript - 在没有服务器的情况下使用 Google Cloud Messaging 发送通知

标签 javascript jquery https google-cloud-messaging

我正在寻找一种在我的电脑上使用 javascript 通过 Google Cloud Messaging 发送通知的方法,因此无需中间服务器。正如开发者网站所指出的,请求的格式应该是这样的:

https://gcm-http.googleapis.com/gcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

{ "data": {
    "score": "5x1",
    "time": "15:10"
  },
  "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}

首先我尝试使用 ajax 方法:

var textNotification={ 
    "notification": {
        "title": "Portugal vs. Denmark",
        "text": "5 to 1"
    }
};
    $.ajax(
    {
        url : "https://gcm-http.googleapis.com/gcm/send",
        type : "POST",
        headers :
        {
            'Authorization' : 'AIzaSyZ-1u...',
            'Content-type': 'application/json'
        },
        data : textNotification
    }
    ).done(function (data)
    {
        console.log(data);
    }
    );

另一方面,由于我试图从我的 PC 发送 HTTPS 请求,它被阻止了。还有另一种方法可以遵循吗?

最佳答案

要发送消息,您需要知道接收消息的设备的注册 ID。设备的应用程序在注册到 GCM 时获取此 ID。应用程序收到此 ID 后,会将其传递给您的服务器。因此,当您将 PC 用作服务器时,您会发现很难从您的应用程序发送注册 ID,除非您在 PC 上运行本地 Web 服务器。您的 Android 设备和您的 PC 应通过同一网络连接到互联网。但您也可以手动复制注册 ID 并将其粘贴到发送 GCM 消息的代码中。

您需要您的服务器实现一项服务,该服务从您的应用程序接受注册 ID,并将它们存储在数据库中。 HTTP 请求只允许下行,您需要使用 XMPP 进行上行/下行。

您可以使用这个 gcm sender application在电话中测试您的 gcm-client。另请参阅示例代码 here .

关于javascript - 在没有服务器的情况下使用 Google Cloud Messaging 发送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35418387/

相关文章:

jquery - 基于 CSS3 的滑入式导航

javascript - 识别该项目在触发器上单击

jquery - 如何在上次执行后触发点击事件

python - VS Code 中的请求出现错误,原因是 SSLError ("Can' t connect to HTTPS URL,因为 SSL 模块不可用。”)

java - 使用 HTTPS URL 从 java.net.URLConnection 返回什么?结果加密了吗?

javascript - 相应地添加/删除 Mongoose 中的元素

javascript将数组中的唯一项分组

Javascript 原型(prototype)字符串 - 访问字符串值

javascript - 检查浏览器是否支持 JavaScript 中的 document.querySelectorAll

amazon-web-services - Golang 在 AWS 中重定向到 HTTPS