主题无效值提供 - 虽然FCM发送到主题(Invalid topic value provided

2019-11-04 23:31发布

我试图发送FCM消息到主题。 但是,从服务器获取“主题无效值提供”错误。

JSON有效载荷

{  
   "message":{  
      "topic":"/topics/news",
      "data":{  
         "title":"Hellow World",
         "message":"This is the Topic Message",
         "type1":"100",
         "type2":"abc"
      }
   }
}

响应

{  
   "error":{  
      "code":400,
      "message":"Request contains an invalid argument.",
      "status":"INVALID_ARGUMENT",
      "details":[  
         {  
            "@type":"type.googleapis.com/google.rpc.BadRequest",
            "fieldViolations":[  
               {  
                  "field":"message.topic",
                  "description":"Invalid topic value provided."
               }
            ]
         },
         {  
            "@type":"type.googleapis.com/google.firebase.fcm.v1.FcmError",
            "errorCode":"INVALID_ARGUMENT"
         }
      ]
   }
}

我曾尝试题目值“新闻”(没有“/主题/”),但它抛出同样的错误。 我可以发送消息,从火力控制台的话题没有任何问题。

任何帮助表示赞赏。 TIA

EDIT1 - 以下通知有效载荷工作正常,但数据有效载荷不起作用。 按照文件,数据有效载荷也被允许https://firebase.google.com/docs/cloud-messaging/android/topic-messaging请求

{
  "message":{
    "topic" : "foo-bar",
    "notification" : {
      "body" : "This is a Firebase Cloud Messaging Topic Message!",
      "title" : "FCM Message",
      }
   }
}

EDIT2:这个工程。 我在我的代码中的小bug这是添加额外的引号的话题。 下面请求就像一个魅力

{  
   "message":{  
      "topic":"news",
      "data":{  
         "title":"Hellow World",
         "message":"This is the Topic Message",
         "type1":"100",
         "type2":"abc"
      }
   }
}

Answer 1:

根据文档侑请求应该是这样的:

https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{
  "to": "/topics/foo-bar",
  "data": {
    "message": "This is a Firebase Cloud Messaging Topic Message!",
   }
}


文章来源: Invalid topic value provided - While sending FCM to a topic