2016-10-06 3 views
0

Я пытаюсь отправить сообщение на свое устройство через firebase. Но я получил ошибку. Я успешно протестировал его на предварительном клиенте REST. Это сообщение от клиента отдыхаотправить запрос на отправку сообщений в firebase cloud ajax?

Content-Type: application/json 
Authorization: key=MY-KEY 
Content-Length: 106 

POST /fcm/send HTTP/1.1 
HOST: fcm.googleapis.com 
content-type: application/json 
authorization: key=MY-KEY 
content-length: 106 

{ 
    "to":"/topics/Self_Taught" 
    "notification": 
    { 
    "body":"Hello" 
    } 
}  

Основываясь на этом, я сделал свой код javascript. Не беспокойтесь о песке, это другая библиотека, и она работает нормально.

$.ajax({ 
      url: "https://fcm.googleapis.com/fcm/send", 
      type: "POST", 
      contentType: "application/json", 
      authorization: "key=MY-KEY", 
      data: { 
       "to": "/topics/Self_Taught", 
       "notification": { 
        "body": message 
       } 

      }, 
      success: function (result) { 
       $.gritter.add({ 
        title: "", 
        text: result.message_id, 
        class_name: 'gritter-success' 
       }); 
      }, 
      error: function (result) { 
       $.gritter.add({ 
        title: "", 
        text: result.error, 
        class_name: 'gritter-error' 
       }); 
      } 
     }); 

И это то, что я вернусь из result.error

function() { 
if (l) { 
    var t = l.length; 
    (function i(t) { 
     x.each(t, function (t, n) { 
     var r = x.type(n); 
     "function" === r ? e.unique && p.has(n) || l.push(n) : n && n.length && "string" !== r && i(n) 
     }) 
    }) 
    (arguments), n ? o = l.length : r && (s = t, c(r)) 
    } 
    return this 
} 

Я следовал этой ссылке путем изменения «уведомления» на «данные», и «тело» в «сообщение». Но у меня такая же ошибка. https://firebase.google.com/docs/cloud-messaging/android/topic-messaging#http_post_request

Где моя ошибка? :(Спасибо

+0

Можете ли вы показать ошибку, которая сообщает FCM ? –

+0

@ KanishkDudeja что это? –

ответ

1

Разрешение должно быть частью данных & уведомления «заголовков» должно быть передано в виде строки Попробуйте ниже:. Он работает :)

 $.ajax({   
      type : 'POST', 
      url : "https://fcm.googleapis.com/fcm/send", 
      headers : { 
       Authorization : 'key=' + '<key>' 
      }, 
      contentType : 'application/json', 
      dataType: 'json', 
      data: JSON.stringify({"to": "<instance ID>", "notification": {"title":"Test","body":"Test"}}), 
      success : function(response) { 
       console.log(response); 
      }, 
      error : function(xhr, status, error) { 
       console.log(xhr.error);     
      } 
     }); 
+2

Это может быть хорошим ответом, если вы исправили свое форматирование и объяснили, что вы делаете по-другому, чтобы заставить его работать. – Shadow

+0

Что сделано по-другому? Ответ. Авторизация должна быть частью данных заголовков и уведомлений, которые должны передаваться как строка. Отлично работает –

+0

Рад это слышать - пожалуйста, отредактируйте свой ответ, чтобы содержать эту информацию :) – Shadow

Смежные вопросы