问题+澄清:使用 Google 云消息传递从 Raspberry Pi 向 Android 手机发送消息
Posted
技术标签:
【中文标题】问题+澄清:使用 Google 云消息传递从 Raspberry Pi 向 Android 手机发送消息【英文标题】:Issues+Clarification: Sending message from Raspberry Pi to Android Phone using Google cloud Messaging 【发布时间】: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,请查看我刚刚发布的答案。 【参考方案1】:我无法解决上述错误。但是我可以使用带有 GCM 的 Amazon SNS 成功地将推送通知发送到 Android 手机!
我从我的 IoT 设备将传感器数据发送到托管在 Amazon EC2 上的 Web 服务。从 EC2 我使用 SNS 和 GCM 将数据推送到 Android 手机。它没有任何问题。
我使用 Web 服务将数据发送到 EC2 实例。但 Amazon Kinesis 是一种将数据实时流式传输到 Amazon 云的更有效方式。
AWS 提供免费会员资格来试用他们的许多云实用程序。 Kinesis 不是免费的,因此我没有尝试过。但我知道有人在使用它。
您可以从 Amazon SNS 官方教程网站下载整个 Android 项目源代码,稍加个性化后使用。
【讨论】:
以上是关于问题+澄清:使用 Google 云消息传递从 Raspberry Pi 向 Android 手机发送消息的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Azure 通知 REST API 与 Google 云消息传递一起使用