问题+澄清:使用Google云消息从Raspberry Pi向Android Phone发送消息

卡贾里格

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

  1. 在线创建了GCM项目
  2. 在该项目中,我使用Raspberry Pi的IP地址生成了一个服务器API密钥。
  3. 然后从RPi运行以下程序。代码中的API是上述API(摘自Google Cloud Messaging HTTP错误400:错误的请求

    导入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", "[email protected]", "24", "10-09-2014", "VAL")
    

我的问题和疑问:

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

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

  1. 使用php向Google Cloud Messaging发送通知给我未经授权的错误401
  2. http://fryerblog.com/post/30057483199/implementing-push-notifications-with-gcm

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

卡贾里格

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

从我的物联网设备,我将传感器数据发送到了托管在Amazon EC2上的Web服务。从EC2,我使用SNS和GCM将数据推送到Android手机。它的工作没有任何麻烦。

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

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

您可以从Amazon SNS官方教程网站下载整个Android项目源代码,并在进行一些个性化设置后使用它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

骆驼向OracleAQ问题发送消息

来自分类Dev

向MSMQ发送消息时出现问题

来自分类Dev

使用发送意图android向多个人发送消息

来自分类Dev

向群组发送消息(通知)-Android

来自分类Dev

向TApplication发送消息

来自分类Dev

向特定的用户问题发送SignalR消息。我做错了什么?

来自分类Dev

在Hubnet模拟期间如何向客户端发送弹出窗口消息/问题(netlogo)

来自分类Dev

Windows Phone 8消息框问题

来自分类Dev

Windows Phone 8消息框问题

来自分类Dev

如何使用USB从Android向Windows发送消息

来自分类Dev

如何使用USB从Android向Windows发送消息

来自分类Dev

消息发送命令有问题

来自分类Dev

我在发送消息时遇到问题

来自分类Dev

从SharedWorker向SharedWorker发送消息

来自分类Dev

无法向FB发送消息

来自分类Dev

向 UI 线程发送消息

来自分类Dev

无法向群聊发送消息

来自分类Dev

向 JMS (Weblogic) 发送消息

来自分类Dev

向指定用户发送消息

来自分类Dev

使用msg向远程用户发送消息

来自分类Dev

使用java向kafka主题发送消息

来自分类Dev

使用NetMQ多部分消息发送大对象的性能问题

来自分类Dev

使用带有 Java 的 Firebase 云向单个设备发送消息

来自分类Dev

从Android Wear向主机设备发送消息

来自分类Dev

向50人发送消息时android应用崩溃

来自分类Dev

Arduino未通过蓝牙向Android发送消息

来自分类Dev

Firebase 显示成功但未发送云消息(Android - PHP)

来自分类Dev

无法发送消息存储Android

来自分类Dev

通过Google脚本从Google Sheet向Telegram发送消息