首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用AppEngine Python通过Firebase Cloud Messaging向安卓应用发送通知

如何使用AppEngine Python通过Firebase Cloud Messaging向安卓应用发送通知
EN

Stack Overflow用户
提问于 2017-06-13 05:27:59
回答 0查看 1.6K关注 0票数 1

这是我第一次在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请求接收到的数据推送到通知。我写了一些基本的代码,试图做到这一点:

代码语言:javascript
运行
复制
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云消息主题消息!”,}}

我得到以下响应:

代码语言:javascript
运行
复制
{
"multicast_id": 
7345322951926226000
,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
  {
"error": "InvalidRegistration"
}
],
}

我确信我错过了一些简单的东西,但作为AppEngine和Firebase的新手,我不确定我错在哪里。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44508992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档