【发布时间】:2014-10-09 08:48:12
【问题描述】:
我是 Raspberry Pi 和 Google Cloud Messaging 的新手。我想要做的如下:Raspberry Pi 正在读取一些传感器数据,我想将数据实时发送到我的 Android 手机,即一旦收到传感器读数,它将被推送到手机。我研究了各种方法来做到这一点,并认为使用 Google Cloud Messaging 最适合我。所以,我做了以下事情:
- 在线创建了一个 GCM 项目
- 在项目中,我使用树莓派的 IP 地址生成了一个服务器 API 密钥。
-
然后从 RPi 运行以下程序。代码中的API就是上面的API(取自Google Cloud Messaging HTTP Error 400: Bad Request)
导入 json
import urllib import urllib2 class RemoteAlert: def sendGCM(self, regid, email, entry_id, date_modified, kind): url = "https://android.googleapis.com/gcm/send' apiKey = MY_API myKey = "key=" + apiKey json_data = { "registration_id": regid, "data" : { "entry_id" : entry_id, "email": email, "date_modified": date_modified, "kind": kind, "reg_id": regid, }, } headers = {'Content-Type': 'application/json', 'Authorization': myKey} data = urllib.urlencode(json_data) req = urllib2.Request(url, data) req.add_header("Authorization", myKey) f = urllib2.urlopen(req) response = f.read() f.close() print "DONE" obj = RemoteAlert() print obj.sendGCM("1234", "xxxxxx@gmail.com", "24", "10-09-2014", "VAL")
我的问题和疑问:
- 当我从 RPi 运行上述代码时,我收到“授权错误 401”。为什么?
- 我是否正确完成了所有步骤?我可以从我的 RPi 中简单地运行上述代码,而无需在任何地方安装任何 GCM 服务器吗?
- 我不知道我需要在 GCM 项目站点中编写什么样的代码才能接收/发送/使用此消息。
- 这部分工作完成后,我将编写一个客户端程序来接收我的安卓手机中的 RPi 数据。
我已经查看了以下页面寻求帮助:
- Sending notifications to Google Cloud Messaging with php gives me Unauthorized Error 401
- http://fryerblog.com/post/30057483199/implementing-push-notifications-with-gcm
任何帮助表示赞赏!谢谢!
【问题讨论】:
-
HI Kajarid..我也在做同样的事情..你找到以下问题的任何解决方案了吗?如果是,请在答案文件中更新它。这对我真的很有帮助..
-
HI Kajarid..我也在做同样的事情..你找到以下问题的任何解决方案了吗?如果是,请在提交的答案中更新它。这对我真的很有帮助。谢谢
-
嗨@Dhrumi,请查看我刚刚发布的答案。
标签: android python raspberry-pi urllib2 google-cloud-messaging