firebase APN推送通知TypeError:标头内容包含无效字符

时间:2019-04-30 20:30:12

标签: push-notification google-cloud-firestore database-trigger apn

我想使用打字稿从Firebase触发器向苹果iPhone发送推送通知。

https://firebase.google.com/docs/cloud-messaging/http-server-ref

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

我尝试生成一个新的私有服务密钥并将其上传到我的源代码中(我知道我不建议这样做)-那样我就可以克服401错误。我确实克服了401错误,但现在有了

TypeError: The header content contains invalid characters

其他人是否会感到奇怪,即类型为json但标头上写有等号?

在标题中,我尝试过:

Authorization:key=encodeURIComponent(token) 

看看对组件进行编码是否可以解决标题问题。

下面的完整代码

        import * as service_account from "../utility/dev-service-account"


        let token = service_account.default.private_key;
        const json = {"validate_only":"false","message":{"apns":"..4D81CBF73A1374ADD8327D2FAE87885AC0D9A1A16FA55F8264660284CF1AEB", "notification" : {"title":"hi","body":"no"}}};
        const url   = "https://fcm.googleapis.com/fcm/send";
        const auth  = `key=${token}`;
        let instance = axios.default.create(
        {
            headers: 
            {
                post: 
                {
                    "Content-Type":     'application/json',
                    Authorization:      auth 
                }
            }
        });

        await instance.post(url, json).then(function (response) 
        {
            console.log("post success", response);
        }).catch(function (error) 
        {
            console.log("post failed ", error);
        });

实际结果应该是我的axios请求返回了“成功”并向我的手机发送了推送通知。

我认为我没有做任何更改,现在出现401错误,所以我不知道怎么回事。

0 个答案:

没有答案