【问题标题】:Issues+Clarification: Sending message from Raspberry Pi to Android Phone using Google cloud Messaging问题+澄清:使用 Google 云消息传递从 Raspberry Pi 向 Android 手机发送消息
【发布时间】:2014-10-09 08:48:12
【问题描述】:

我是 Raspberry Pi 和 Google Cloud Messaging 的新手。我想要做的如下:Raspberry Pi 正在读取一些传感器数据,我想将数据实时发送到我的 Android 手机,即一旦收到传感器读数,它将被推送到手机。我研究了各种方法来做到这一点,并认为使用 Google Cloud Messaging 最适合我。所以,我做了以下事情:

  1. 在线创建了一个 GCM 项目
  2. 在项目中,我使用树莓派的 IP 地址生成了一个服务器 API 密钥。
  3. 然后从 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")
    

我的问题和疑问:

  1. 当我从 RPi 运行上述代码时,我收到“授权错误 401”。为什么?
  2. 我是否正确完成了所有步骤?我可以从我的 RPi 中简单地运行上述代码,而无需在任何地方安装任何 GCM 服务器吗?
  3. 我不知道我需要在 GCM 项目站点中编写什么样的代码才能接收/发送/使用此消息。
  4. 这部分工作完成后,我将编写一个客户端程序来接收我的安卓手机中的 RPi 数据。

我已经查看了以下页面寻求帮助:

  1. Sending notifications to Google Cloud Messaging with php gives me Unauthorized Error 401
  2. http://fryerblog.com/post/30057483199/implementing-push-notifications-with-gcm

任何帮助表示赞赏!谢谢!

【问题讨论】:

  • HI Kajarid..我也在做同样的事情..你找到以下问题的任何解决方案了吗?如果是,请在答案文件中更新它。这对我真的很有帮助..
  • HI Kajarid..我也在做同样的事情..你找到以下问题的任何解决方案了吗?如果是,请在提交的答案中更新它。这对我真的很有帮助。谢谢
  • 嗨@Dhrumi,请查看我刚刚发布的答案。

标签: android python raspberry-pi urllib2 google-cloud-messaging


【解决方案1】:

我无法解决上述错误。但是我可以使用带有 GCM 的 Amazon SNS 成功地将推送通知发送到 Android 手机!

我从我的 IoT 设备将传感器数据发送到托管在 Amazon EC2 上的 Web 服务。从 EC2 我使用 SNS 和 GCM 将数据推送到 Android 手机。它没有任何问题。

我使用 Web 服务将数据发送到 EC2 实例。但 Amazon Kinesis 是一种将数据实时流式传输到 Amazon 云的更有效方式。

AWS 提供免费会员资格来试用他们的许多云实用程序。 Kinesis 不是免费的,因此我没有尝试过。但我知道有人在使用它。

您可以从 Amazon SNS 官方教程网站下载整个 Android 项目源代码,稍加个性化后使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 1970-01-01
    相关资源
    最近更新 更多