【发布时间】:2017-05-18 08:28:43
【问题描述】:
我正在使用网络推送,并关注this codelab学习如何注册用户。
对于后端,我将使用这个库来发送推送消息: https://github.com/web-push-libs/web-push-csharp
我注意到 Chrome 中的一些用户在我注册时具有以下两种可能来源之一:
fcm.googleapis.com/fcm/send 或 android.googleapis.com/gcm/send。
我已将所有参数添加到后端库,我正在尝试向所有用户批量发送通知。
当我发送消息时,我对所有消息都使用vapidDetails,我看到只有 ID 以fcm.googleapis.com 开头的用户才能正确发送推送消息。对于所有使用android.googleapis.com 的用户,我收到了错误UnauthorizedRegistration。所以我尝试使用gcmAPIKey。
我从 Firebase 获得了密钥,我看到那是 2 个密钥,所以我尝试了它们,我还读到在用户注册的网站上我需要将文件名 manifest.json 与 gcm_sender_id 一起放置,所以我做到了……
我使用的所有代码都来自顶部的两个库。
我举例说明我发送的内容以及我从有效的 fcm 和无效的 gcm 获得的响应。 我也尝试阅读这个问题,但没有解决我的问题
{
Method: POST,
RequestUri: 'https://android.googleapis.com/gcm/send/f9PkPIROxKo:APA91bESvQBjMpHDmi_InXNHScEFt_-xWy4zEYhUfQvS6W78YBVZLrDGoYnKkw21bYjbTU0Q6zk_VXt8qdEiQtNEe0W2znE2Ho4_gYh5yLhqPZt8CHFrhhmUWdZaWpIlFDwvS8FhOALA', Version: 1.1, Content: System.Net.Http.ByteArrayContent,
Headers: {
TTL: 2419200
Encryption: salt=mfZ6vUxS7u3Xo5jDPau_NA
Authorization: key=AAAAZYYARKI:APA91bEIdVZ3LiZUsL0CgWmQTkz6hK_U8OPMTjuMt_6Ux2PmNNGGZEluzllixLIQHEDjUYygENPN8MCmnTmhxnPD29WfyHJrDVZjEUzbl7u--1NQVI49pYtag9kijSBsDw-mE4b6lOvD
Crypto-Key: dh=BIBz0FvQPs6BdNCwFut_vHwU-Tk-pyuCBxnxqOSufo4EHEaps0DZ5lZjSTG46RcI53D-Dkj6uMHqyw9X5r2u_Hk
Content-Type: application/json
Content-Length: 74
Content-Encoding: aesgcm
}
}
{
StatusCode: 400,
ReasonPhrase: 'UnauthorizedRegistration',
Version: 1.1,
Content: System.Net.Http.StreamContent,
Headers: {
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Alt-Svc: quic=":443"; ma=2592000; v="37,36,35"
Vary: Accept-Encoding
Transfer-Encoding: chunked
Accept-Ranges: none
Cache-Control: max-age=0, private
Date: Thu, 18 May 2017 07:28:48 GMT
Server: GSE
Content-Type: text/html; charset=UTF-8
Expires: Thu, 18 May 2017 07:28:48 GMT
}
}
对于有效的 fcm:
{
Method: POST,
RequestUri: 'https://fcm.googleapis.com/fcm/send/e1N5dtHsikc:APA91bEHZztef21cjooCnaPu_lAmcYjA2twELeecS7wIuJibbpptAlUdYaVHNkVukph5qy9mnVml3qenqti1Yz7wUqL6A-UY3h-Ifkv1dnxSsngPIvmG8VXMmjy66aSvJ1DtI1p3W3Sm', Version: 1.1, Content: System.Net.Http.ByteArrayContent,
Headers: {
TTL: 2419200
Encryption: salt=W1Y-iRlHUu1spMta3etHGw
Authorization: WebPush eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJhdWQiOiJodHRwczovL2ZjbS5nb29nbGVhcGlzLmNvbSIsImV4cCI6MTQ5NTEzNTQ2OCwic3ViIjoibWFpbHRvOm9maXJAZmllbGRzb2ZsZWFkcy5jb20ifQ.zZ5cqwhbGNHDhO_swjwdxjqnCczFrOFoAJSvjMP2Xeylt5C6MfGwNz92vZWMPkiJwhHrJZt9nmsbrh_6ghxaLw
Crypto-Key: dh=BLeaQC8dvMuxASHFsp4_8kcExsa6yZcT1V2x7MZJnUGgSxq3JXYa6JN7Rm6xtPpwA0Q5tftSdy6dR7P1ZMztPMs;p256ecdsa=BDd3_hVL9fZi9Ybo2UUzA284WG5FZR30_95YeZJsiApwXKpNcF1rRPF3foIiBHXRdJI2Qhumhf6_LFTeZaNndIo
Content-Type: application/json
Content-Length: 74
Content-Encoding: aesgcm
}
}
{
StatusCode: 201,
ReasonPhrase: 'Created',
Version: 1.1,
Content: System.Net.Http.StreamContent,
Headers: {
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Alt-Svc: quic=":443"; ma=2592000; v="37,36,35"
Cache-Control: max-age=0, private
Date: Thu, 18 May 2017 07:25:38 GMT
Location: https://fcm.googleapis.com/fcm/0:1495092338974351%0f493ae6f9fd7ecd
Server: GSE
Content-Length: 0
Content-Type: text/plain
Expires: Thu, 18 May 2017 07:25:38 GMT
}
}
【问题讨论】:
标签: javascript c# git web push-notification