gpt4 book ai didi

php - FCM 仅通过使用 PHP 的 Google 客户端 API 为 iOS 设备返回 401 未经授权的错误

转载 作者:行者123 更新时间:2023-12-01 16:21:59 32 4
gpt4 key购买 nike

我正在使用 FCM HTTP v1 API 向移动设备发送通知。后端是使用 PHP 编写的,我正在使用 Google API 客户端库并使用服务帐户来授权我对 FCM 的请求。但我面临一些奇怪的问题,比如通知正在发送到所有 Android 设备,但 fcm 为 iOS 设备返回 401 未经授权的错误。另外,我使用自己的 iOS 设备进行了测试,但当我使用自己的 iOS 设备时,fcm 总是返回 200 OK。我很困惑问题是我的代码还是移动设备上的某些配置。这是我发送通知的方式。

$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope('https://www.googleapis.com/auth/firebase.messaging');
$httpClient = $client->authorize();
$message = [
"message" =>
[
"token" => $device_token,
"notification" =>
[
"body" => $body,
"title" => "xxxxx"
],
"apns" =>
[
"payload" =>
[
"aps" =>
[
"category" => "NEW_MESSAGE_CATEGORY",
"alert" => [
"body" => $body
],
"badge" => 3,
"sound" => "default",
"chat" => 2

]
]
]
]
];
$response = $httpClient->post("https://fcm.googleapis.com/v1/projects/xxxx-123/messages:send", ['json' => $message]);

我在授权方面做错了什么?请帮忙。服务帐户文件已添加到 GOOGLE_APPLICATION_CREDENTIALS 环境变量中。

最佳答案

FCM 使用 APNS(Apple Push Notification Service)将消息传递到 iOS 设备,为了做到这一点,FCM 需要连接到 Apple 服务器。
所以我们需要在 Firebase 控制台中配置 APNS 凭据。如果此配置有任何错误,FCM 将无法连接到 Apple 服务器,并返回 401 错误。

因此,请检查 Settings -> Project Configuration -> Cloud Messaging -> iOS Configuration -> APNS Authentication Key 中的所有配置
特别要检查“ 键码 ”是否正确。

有关此配置的更多信息可以在以下位置找到:

https://firebase.google.com/docs/cloud-messaging/ios/client#upload_your_apns_authentication_key

https://firebase.google.com/docs/cloud-messaging/ios/certs

问候

关于php - FCM 仅通过使用 PHP 的 Google 客户端 API 为 iOS 设备返回 401 未经授权的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55824244/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com