这是我第一次在stackoverflow上发布问题,所以我会尽我最大的努力以一种清晰的方式扩展我的问题。我在试图找到答案的过程中遇到了困难,但目前我被困住了,所以任何提供的见解都将非常感谢。
我正在尝试将FCM消息发送到我开发的Android应用程序。我遵循了安卓快速入门教程:https://firebase.google.com/docs/cloud-messaging/android/client
我可以从Firebase Cloud Messenging composer向我的应用程序发送通知消息,通知被应用程序正确接受,当应用程序可见时,在简单的Activity -> TextView中加载数据有效负载。
现在,我正在尝试使用基于Webapp2框架的Python SDK从Google App Engine服务器应用程序中推送通知,但我不知道该怎么做。
在RequestHandler中,我希望将从POST请求接收到的数据推送到通知。我写了一些基本的代码,试图做到这一点:
class SendDetails(webapp2.RequestHandler):
def post(self):
    url = 'https://fcm.googleapis.com/fcm/send'
    body = {
        "data": {
            "title": "mytitle",
            "body": "mybody",
            "url": "myurl"
        },
        "notification": {
            "title": "My web app name",
            "body": "message",
            "content_available": "true"
        },
        "to": "AIzaSyAqv4hjGC1Z5.......XyQ",
    }
    headers = {"Content-Type": "application/json",
               "Authorization": "AIzaSyDhIji4X6h0VQwor.......lrr2zo"}
    try:
        form_data = urllib.urlencode(body)
        headers = {"Content-Type": "application/json",
                   "Authorization": "key=AIzaSyDhI.......mOUXlrr2zo"}
        result = urlfetch.fetch(
            url='https://fcm.googleapis.com/fcm/send',
            payload=form_data,
            method=urlfetch.POST,
            headers=headers)
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write(result)
    except urlfetch.Error:
        logging.exception('Caught exception fetching url')当我在dev_appserver上运行代码,并通过浏览器触发RequestHandler时,我得到一个"POST HTTP/1.120068“响应。我不知道如何解释"68“代码。
根据我如何格式化请求,有时我会被重定向到https://firebase.google.com/docs/cloud-messaging/http-server-ref上的"Firebase Cloud Messaging HTTP Protocol“网页,它告诉我我在正确的轨道上。
接下来,为了获得一些见解,我尝试从一个名为Advanced REST Client (ARC)的Chrome应用程序发送通知,它允许我构建HTTP请求并转发到FCM服务器。
下面是我发送给FCM服务器的一个示例:
内容类型:应用/json授权: key=AIzaSyDhIji4X6h0........2zo
{"to":"AIzaSyAqv4hjGC1Z5........cfSRU_gXyQ","data":{ "message":“这是一条Firebase云消息主题消息!”,}}
我得到以下响应:
{
"multicast_id": 
7345322951926226000
,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
  {
"error": "InvalidRegistration"
}
],
}我确信我错过了一些简单的东西,但作为AppEngine和Firebase的新手,我不确定我错在哪里。
https://stackoverflow.com/questions/44508992
复制相似问题