0

Я пытаюсь использовать nativescript HTTP.request для отправки завитка для push-уведомлений firebase. Я проверил завиток, и он работает, но я получаю ошибку с неправильным запросом, когда пытаюсь отправить его через http.request.Использование NS http.request для отправки завитка

Вот завиток код (мой ключ был заменен переменной по причинам конфиденциальности)

curl -X POST --header "Authorization: key=MyKey" --Header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d "{\"notification\":{\"title\": \"My title\", \"text\": \"My text\", \"sound\": \"default\"}, \"data\":{\"foo\":\"bar\"}, \"priority\": \"High\", \"to\":\"d1LHpypPxA0:APA91bHG4HlZQnb7F_BkZAZYHv1MM00FhNbsONMhsLRB-U4p3As3C0Pp_8ALqQFusOOkgdSHZUlOfHbtt6qXU8pzCnjC-ozfMU3vTqjY0iy90XDvGHkDt0qw1w2wnr73PjFqViHEGONH\"}" 

вот мой http.request

http.request({ 
        url: 'https://fcm.googleapis.com/fcm/send', 
        method: "POST", 
        headers: { 'Authorization': 'key=MyKey','Content-Type': 'application/json'} , 
        content: { 
         "notification": { 
          "title": "testingtesting", 
          "text": "some text", 
          "sound": "default", 
          "priority": "High" 
         } 
        }, 
         data: { "foo": "bar" }, 
         to: "d1LHpypPxA0:APA91bHG4HlZQnb7F_BkZAZYHv1MM00FhNbsONMhsLRB-U4p3As3C0Pp_8ALqQFusOOkgdSHZUlOfHbtt6qXU8pzCnjC-ozfMU3vTqjY0iy90XDvGHkDt0qw1w2wnr73PjFqViHEGONH" 


       }).then((response) => { 
        //HttpResult = response.content.toJSON(); 
        console.log('----------------------------------------------------'); 
        console.log(response.content); 
       }, (e) => { 
        console.log("Error occurred " + e); 
       }); 

любая помощь будет принята с благодарностью!

+0

Похоже, что заголовки ошибочны. Согласно документам, он должен быть в формате JSON (не уверен, что он должен быть массивом или объектом). Кроме того, почему бы не использовать функцию HTTP Angular, если вы ее используете? – rrjohnson85

+0

@ rrjohnson85 Я скорректировал код для этого формата –

+0

Я уверен, что вам все равно нужно содержимое 'JSON.stringify()'. Взгляните на тесты HTTP в Github, и вы поймете, что я имею в виду. – rrjohnson85

ответ

1

Я понял, это код, который сработал. У меня были некоторые проблемы с форматированием, я надеюсь, что это поможет кому-то в будущем!

var HttpResult; 
       http.request({ 
        url: 'https://fcm.googleapis.com/fcm/send', 
        method: "POST", 
        headers: { 'Authorization': 'key=MyKey', 'Content-Type': 'application/json' }, 
        content: JSON.stringify({ 
         "notification": { 
          "title": "testingtesting", 
          "text": "some text", 
          "sound": "default", 
          "priority": "High" 
         }, 
         'data': { "foo": "bar" }, 
         'to': "d1LHpypPxA0:APA91bHG4HlZQnb7F_BkZAZYHv1MM00FhNbsONMhsLRB-U4p3As3C0Pp_8ALqQFusOOkgdSHZUlOfHbtt6qXU8pzCnjC-ozfMU3vTqjY0iy90XDvGHkDt0qw1w2wnr73PjFqViHEGONH" 
        }) 
       }).then((response) => { 
        //HttpResult = response.content.toJSON(); 
        console.log('----------------------------------------------------'); 
        console.log(JSON.stringify(response)); 
       }, (e) => { 
        console.log("Error occurred " + JSON.stringify(e)); 
       }); 
Смежные вопросы