這是我第一次發佈一個問題到stackoverflow,所以我會盡我所能以明確的方式擴展我的問題。我試圖找到一個答案擊敗了我的頭,但我目前陷入困境,所以提供的任何見解都將不勝感激。如何使用AppEngine將Firebase Cloud消息發送到Android應用程序Python
我想將FCM消息發送到我開發的Android應用程序。我遵循Android快速入門教程:https://firebase.google.com/docs/cloud-messaging/android/client
我可以從Firebase雲訊息撰寫器向我的應用程序發送通知消息,並且通知已被應用程序正確接受,並且當應用程序可見時,會將數據有效載荷加載到一個簡單的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.1 200 68」響應。我不確定如何解釋「68」代碼。
根據我如何格式化請求,有時我會重定向到 「Firebase雲消息傳遞HTTP協議」網頁https://firebase.google.com/docs/cloud-messaging/http-server-ref,它告訴我我正處於正確的軌道上。
接下來,爲了獲得一些見解,我嘗試從名爲Advanced REST Client(ARC)的Chrome應用程序發送通知,該通知允許我構建HTTP請求並轉發到FCM服務器。
這裏是什麼,我發送到服務器FCM一個例子:
內容類型:應用程序/ JSON 授權:鍵= AIzaSyDhIji4X6h0 ........ 2zo
{「到「: 「AIzaSyAqv4hjGC1Z5 ........ cfSRU_gXyQ」, 「數據」:{ 「消息」: 「這是一個火力地堡雲消息傳遞主題信息」, }}
我獲得以下響應:
{
"multicast_id":
7345322951926226000
,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
{
"error": "InvalidRegistration"
}
],
}
我相信我錯過了一些簡單的東西,但作爲AppEngine和Firebase的新手,我不確定自己出錯的地方。