Отправка POST-запроса в push-уведомление OneSignal - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть мобильное приложение, которому нужно получать уведомления через POST, используя OneSignal API.Я тестировал его на Почтальоне, и все прошло отлично.Теперь я хочу сделать следующее: взять фрагмент javaScript и использовать API OneSignal для отправки на мой мобильный телефон любого push-уведомления.Сейчас я пытаюсь сделать это, используя пример на w3Schools, но, похоже, это не работает.Вот как я пытался это сделать:

<button type="button" onclick="loadDoc()">Request data</button>

<p id="demo"></p>

<script>
function loadDoc() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("demo").innerHTML = this.responseText;
    }
  };
  xhttp.open("POST", "https://onesignal.com/api/v1/notification", true);
  xhttp.setRequestHeader("Content-type", "application/json");
  xhttp.setRequestHeader("Authorization", "Basic xxxxxxxxxxxxxxxxxx");
  xhttp.send({
        "app_id" : "xxxxxxxxxxxxxxxxxxxxxxxxxx",
        "contents": {"en": "Hello World!"} ,
        "included_segments" : ["All"]
});
}
</script>

</body>
</html>

Я не могу понять, как я должен это сделать.

1 Ответ

0 голосов
/ 25 сентября 2018

В настоящее время Fetch API предпочтительнее, чем XHR.Он поставляется с браузером, и есть легкие полифилы.

const handleAsText = response => response.text()

const demo = document.getElementById("demo")

function loadDoc() {

  const method = "POST"
  const headers = {
    "Content-type": "application/json";
    "Authorization": "Basic xxxxxxxxxxxxxxxxxx";
  }

  const body = JSON.stringify({
    "app_id" : "xxxxxxxxxxxxxxxxxxxxxxxxxx",
    "contents": {"en": "Hello World!"} ,
    "included_segments" : ["All"]
  }) 

  return fetch("https://onesignal.com/api/v1/notification", {method, headers, body})
    .then(handleAsText)
    .then(responseText => demo.textContent = responseText);
}
...