2016-11-12 195 views
0

我试图从我的html页面向Android应用发送Firebase推送通知。我指的是this SO答案来执行它。这里是我的代码:从JavaScript/jQuery发送Firebase推送通知

function post() { 
     $.ajax({ 
      type : 'POST', 
      url : "https://fcm.googleapis.com/fcm/send", 
      headers : { 
       Authorization : 'key=' + 'xxxxxxxxxxxx-xxx-xxxxxxxxxxxxxx' 
      }, 
      contentType : 'application/json', 
      data : { 
       "to": "/topics/videos", 
       "data": { 
       "message": "This is push for video!" 
       } 
      }, 
      success : function(response) { 
       console.log(response); 
      }, 
      error : function(xhr, status, error) { 
       console.log(xhr.error);     
      } 
     }); 

目前,我所面临的问题是在POST request响应我收到以下错误:

JSON_PARSING_ERROR:在位置意外的字符(T)0

+2

发送消息到设备需要使用所谓的**服务器密钥**。顾名思义,这个密钥应该只存在于服务器端代码中。将它放在客户端代码(例如您正在尝试的HTML页面)中意味着您的应用的用户可以获取密钥并用它代表您向所有用户发送消息。这是一个很大的安全漏洞。 –

+0

@FrankvanPuffelen感谢您分析代码并让我知道。我已经考虑过了。这个HTML页面将是私人的,这意味着只有管理员才能看到它,但我仍然想知道是否有任何事情可以让我甚至从管理员那里隐藏这些密钥。 –

+0

由于需要密钥来发送消息,因此发送消息的代码将需要访问该密钥。如果您在客户端的设备上运行此代码,则他们也可以访问该密钥并滥用它。如果你不想这样做,你将不得不在可信进程中运行代码(例如一个小型服务器)。 –

回答

1

尝试致电

JSON.stringify({"to": "videos", "data": {"message": "This is push for video!"}}) 

或添加选项dataType: 'json'

+0

非常感谢! –