11.20 python - Google Cloud Messaging (GCM) HTTP connection server.

原创 2015年11月20日 11:30:41

1.如何向app发送gcm推送?

https://developers.google.com/cloud-messaging/http
1.通过构造http请求,发送给https://gcm-http.googleapis.com/gcm/send
2.通过xmpp发送请求。

2.python如何发送请求?

http://www.findspace.name/easycoding/1137
http://www.01happy.com/python-httplib-get-and-post/

#Code1
#!/usr/bin/env python
#coding=utf8

import httplib, urllib

httpClient = None
try:
    params = urllib.urlencode({'name': 'tom', 'age': 22})
    headers = {"Content-type": "application/x-www-form-urlencoded"
                    , "Accept": "text/plain"}

    httpClient = httplib.HTTPConnection("localhost", 80, timeout=30)
    httpClient.request("POST", "/test.php", params, headers)

    response = httpClient.getresponse()
    print response.status
    print response.reason
    print response.read()
    print response.getheaders() #获取头信息
except Exception, e:
    print e
finally:
    if httpClient:
        httpClient.close()
#Code2
import urllib,urllib2

url = 'http://www.super-ping.com/ping.php?node='+node+'&ping=www.google.com'
        headers = { 'Host':'www.super-ping.com',
                    'Connection':'keep-alive',
                    'Cache-Control':'max-age=0',
                    'Accept': 'text/html, */*; q=0.01',
                    'X-Requested-With': 'XMLHttpRequest',
                    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36',
                    'DNT':'1',
                    'Referer': 'http://www.super-ping.com/?ping=www.google.com&locale=sc',
                    'Accept-Encoding': 'gzip, deflate, sdch',
                    'Accept-Language': 'zh-CN,zh;q=0.8,ja;q=0.6'
                    }
        data = None
        req = urllib2.Request(url, data, headers)
        response = urllib2.urlopen(req)
        compressedData = response.read()

3.发送推送

__author__ = 'george.yang'

#!/usr/bin/env python
#coding=utf8

import urllib,urllib2
import json

serverKey = 'AI?a?yB?WUe8?a69?liy??q??5????3?dq?FlQ?'
regId = 'APA91bG4?yViVl79O?rdB_?YnbA5UP?M_V?3a-5p3?t42??6a?z?-nM??SS??z?O??OIN-sAB?D?oVa?lq6d4Ym81Nt?NU3?GaA???1-Palvu?nnB???G??p???9???N3?-?3?Y?r?lL'

url = 'https://gcm-http.googleapis.com/gcm/send'
headers = {"Content-type": "application/json",
            "Authorization":"key="+serverKey
}

#send to one
# data = {'to': regId, 'data': {'name':'george'}}
#send to many
data = {'registration_ids': [regId], 'data': {'name':'george'}}
req = urllib2.Request(url, json.dumps(data), headers)

response = urllib2.urlopen(req)
print  response
compressedData = response.read()
print compressedData

data 的选择:
“Content-type”: “application/json”时使用: json.dumps(data)
“Content-type”: “application/x-www-form-urlencoded format”时使用:data = urllib.urlencode(data)
http://stackoverflow.com/questions/3893292/python-unhashable-type-error-in-urllib2

转载请注明出处:http://blog.csdn.net/u010499721

如果发送成功,打印:

<addinfourl at 45211720L whose fp = <socket._fileobject object at 0x0000000002AE3318>>
{"multicast_id":???16881?7?99971?8?,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1??79?9??0505061%9b36?1b2?9?d7?cd"}]}

如果http请求数据不符合,返回400

如果regiestId不存在,发送失败:
{“multicast_id”:???16881?7?99971?8?,”success”:0,”failure”:1,”canonical_ids”:0,”results”:[{“error”:”InvalidRegistration”}]}

版权声明:本文为博主原创文章,未经博主允许不得转载。

使用GCM服务(Google Cloud Messaging)实现Android消息推送

最近在网上查了关于很多Android消息推送的资料,其中主要有四种方法。 1) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spa...

php实现 GCM(Google Cloud Messaging) 云推送消息

首先我们要获取api key ,使用google 帐号登录https://code.google.com/apis/console 点击api access 如下 ...

google cloud messaging(GCM)机制.

参考官方文档 https://developers.google.com/cloud-messaging/gcm#arch 什么是GCM ? gcm是google提供的一个免费sdk,可以实现客户端...

使用GCM服务(Google Cloud Messaging)实现Android消息推送

最近在网上查了关于很多Android消息推送的资料,其中主要有四种方法。 1) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spa...

Google Cloud Messaging(GCM Google云推送)

8月不写博,9月徒伤悲,10月徒伤悲... ....。

Google Cloud Messaging(GCM) for Android, android平台消息推送技术(二):GCM推送

在上一篇文章我们介绍了建立google API project,得到了你的project ID跟server key。在这篇文章中,我们需要通过这两个键值来进行消息推送。本文例子根据google官方提...

GCM 的升级版——FCM(firebase cloud messaging)

推送服务对于现在的应用并不陌生,前有挡在墙外的GCM,和在墙内的Jpush,功能上大家大同小异,近几年大大小小的推送sdk层出不穷(比如:XG Push,华为推送,阿里云推送)到底哪个才能成为未来的官...

GCM(google cloud messge) send message sample

  • 2012年10月10日 17:18
  • 1.44MB
  • 下载

Google Cloud Messaging (Android 消息推送技术) (三)接口测试

如果用户使用 https://github.com/yuxiaohui78/Google_Cloud_Messaging/tree/master/GCMSendOnPC

Google Cloud Message for Android(GCM云推送)(译文和开发流程)

Google Cloud Message for Android(GCM推送) google云推送服务允许你从自己的服务端发送数据到用户的Android设备,同时还可以接受来自同一链接发来的信息,GC...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:11.20 python - Google Cloud Messaging (GCM) HTTP connection server.
举报原因:
原因补充:

(最多只允许输入30个字)