Описание:
Я столкнулся с ошибкой 403 Forbidden при попытке отправить уведомление с помощью функции OneSignal::sendNotificationToUser в Laravel. Сообщение об ошибке предполагает, что запрос отклонен из-за отсутствия или недействительного ключа API в заголовке авторизации. Ниже приведено сообщение об ошибке из исключения:Код: Выделить всё
Client error: `POST https://onesignal.com/api/v1/notifications` resulted in a `403 Forbidden` response:
{"errors": ["Access denied. Please include an 'Authorization: Basic ...' header with a valid API key"]}
Пример кода:
Вот код, который я использую для отправки уведомления:Код: Выделить всё
try {
OneSignal::sendNotificationToUser(
$message,
$player_id,
$url = null,
$data = null,
$buttons = null,
$schedule = null
);
} catch (\Exception $e) {
return response()->json([
"error" => 'one_signal_error',
"message" => $e->getMessage(),
"file" => $e->getFile(),
"line" => $e->getLine(),
], 422);
}
Сообщение об ошибке:
Код: Выделить всё
{
"error": "one_signal_error",
"message": "Client error: `POST https://onesignal.com/api/v1/notifications` resulted in a `403 Forbidden` response:\n{\"errors\": [\"Access denied. Please include an 'Authorization: Basic ...' header with a valid API key (https:\/\/documenta (truncated...)\n",
"file": "/home/arloponc/public_html/developer/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php",
"line": 113
}
Ожидаемое поведение:
Уведомление должно быть отправлено успешно, если используется правильный ключ API OneSignal.Фактическое поведение:
Запрос приводит к ответу 403 Forbidden, что указывает на то, что ключ API отсутствует или недействителен. Я уже проверил ключ API и добавил его в переменные среды, но проблема не устранена.Шаги по воспроизведению:
- Настройте интеграцию OneSignal в соответствии с инструкциями к пакету.
- Используйте функцию sendNotificationToUser для отправки уведомления.
- Соблюдайте ошибка 403 Forbidden в ответе.
Среда:
- Версия Laravel: 10.48.16
- Версия PHP: 8.1
- Версия пакета OneSignal: 2.1 (berkayk/onesignal-laravel)
- Версия Guzzle: 7.2 (guzzlehttp/guzzle)
Дополнительная информация:
- Ключ API установлен в файле .env, и я Я уверен, что он настроен правильно.
- Похоже, заголовок авторизации неправильно включен в запрос. Однако, похоже, это обрабатывается внутри пакета, поэтому я не знаю, почему он не работает.
Будем признательны за любые рекомендации и предложения.
Будем признательны.
п>
Подробнее здесь: https://stackoverflow.com/questions/790 ... -onesignal