Попытка отправить уведомление pu sh с моего laravel сервера на expo не работает - PullRequest
1 голос
/ 08 мая 2020

Это ошибка api, которую я получаю, когда делаю почтовый запрос к expo api:

{"errors":[{"code":"API_ERROR","message":"child \"to\" fails because [\"to\" is required], \"value\" must be an
array."}]}

Это запрос, который я пытаюсь сделать

$payload=json_encode([
       'to' => "ExponentPushToken[xxxxxxxxxxxxxxxx]",
       'title'=>'Hello',
       'body'=>'hello World',


   ]);

     $response = Http::withHeaders([
         'Host'=>'exp.host',
         'accept'=>'application/json',
         'Content-Type' => 'application/json',
         'accept-encoding'=>'grizp,deflate',
     ])->post('https://exp.host/--/api/v2/push/send', [
         'debug' => TRUE,
         'body' => $payload,
     ]);

, но когда Я делаю вызов api из своего приложения expo, используя javascript, он отлично работает

  sendPushNotification = async () => {
    const message = {
      to: this.state.expoPushToken,
      sound: 'default',
      title: 'Hello',
      body: 'Hello World',
      data: { data: 'goes here' },
      _displayInForeground: true,
    };

    const response = await fetch('https://exp.host/--/api/v2/push/send', {
      method: 'POST',
      headers: {
        Accept: 'application/json',
        'Accept-encoding': 'gzip, deflate',
        'Content-Type': 'application/json',
      },
      body: JSON.stringify(message),
    });
  };

1 Ответ

0 голосов
/ 08 мая 2020

Измените свою $payload переменную на массив таких объектов:

$payload = json_encode([
            [
                'to' => "ExponentPushToken[xxxxxxxxxxxxxxxx]",
                'title' => 'Hello',
                'body' => 'hello World',
            ]
        ]);
...