javascript - 通过iron-ajax(聚合物)通知

标签 javascript curl notifications google-cloud-messaging polymer-1.0

我们可以使用 iron-ajax 元素在 PolymerJS 中发送通知吗?

这是一个 CURL 请求的示例(工作正常):

curl --header "Authorization: key=my_key" --header "Content-Type: application/json" -d '{"to": "my_token", "notification": {"title": "Hello Bro", "body": "Message Yo man"}}' https://fcm.googleapis.com/fcm/send

我对“my_key”和“my_token”实例使用我自己的值。在 Chrome 中,它给了我这样的东西:Screenshot sample

这是我的 iron-ajax 元素的代码示例:

<iron-ajax id="xhr"
    auto
    url="https://fcm.googleapis.com/fcm/send"
    headers='{"Authorization": "[[my_key]]"}'
    handle-as="json"
    content-type="application/json"
    body='{"to":"[[my_token]]","notification": {"title": "Hello Bro", "body": "Message Yo man"}}' 
    method="POST">
</iron-ajax>

根据与页面上某些元素的交互,我尝试通过 JS 触发通知:

this.$.xhr.generateRequest();

我收到这样的回复:

{"multicast_id":5623718911822310219,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1489155273403695%e609af1cf9fd7ecd"}]}

所以看起来很成功,尽管这次我没有收到任何通知。我在这里遗漏了一些东西,或者可能有更好的方法在聚合物中实现它?预先感谢您对此事的任何见解!

最佳答案

它按原样工作;)您无法通过自己的 UI 向自己发送通知。此外,如果您要向特定应用程序/网站发送通知(至少通过桌面) - 该应用程序/网站不应该是浏览器中当前事件的选项卡(或者浏览器不应该是您的事件应用程序作为接收者),这当然有道理——但我花了一些时间才弄清楚。不过,通过 vanilla js 有更简单的方法可以做到这一点 - 您甚至可以通过浏览器控制台触发此操作(使用正确的参数)。我希望这对某人有帮助,祝你好运!

 function triggerNotification(key,token,title,message){
    var notification = {
      'title': title,
      'body': message
    };

    fetch('https://fcm.googleapis.com/fcm/send', {
      'method': 'POST',
      'headers': {'Authorization': 'key=' + key, 'Content-Type': 'application/json'},
      'body': JSON.stringify({'notification': notification, 'to': token})
    }).then(function() {
      console.log("Response: ",arguments);
    }).catch(function(error) {
      console.error(error);
    })
}

关于javascript - 通过iron-ajax(聚合物)通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42720956/

相关文章:

php - Laravel 5.4 通知中未找到类 'Illuminate\Mail\Events\MessageSent'

Android 通知图标是一个白色圆圈

javascript - 单击按钮启用和禁用单选按钮

javascript - jQuery fadeIn 显示太快

php - 当图像不存在时使用哪种方法

linux - "Ignore"我的 Bash 脚本中位置参数中的引号

iphone - 检测通知中心设置

javascript - 使用 JavaScript 将 HTML 对象添加到 DOM。显示空白

javascript - 我可以使用 Node 来为单独服务器上的 Web 应用程序提供支持吗?

java - 如何将 curl -X post 翻译成 java