Пример #1
0
def UpdateGCM(self,instanttype,ohurl):
	bid = self.request.get("bid")
	bname = self.request.get("bname")
	regid = self.request.get("regid")
	message = self.request.get("message")
	atplace = self.request.get("atplace")
	timestamp = datetime.datetime.now()
	userid = self.user_id
	userDetails = self.current_user
	push_query = GcmData.query(GcmData.bid == bid)	
	pushes = push_query.fetch(1) 
	registration_ids = []
	for push in pushes:
	    instants = push.instants            
	    if len(instants) > 20:
		del instants[-1]
	    instant = InstantMesg(message = message,atplace = atplace,userid=self.user_id,timestamp = timestamp,instanttype = instanttype,ohid = ohurl)
	    instants.append(instant)
	    push.instants = instants
	    push.put()

	secs = calendar.timegm(timestamp.timetuple())

	#querry databse for registration ids
	user_query = User.query(User.instants.gcm_bids == bid)
	users = user_query.fetch() 	
	for user in users:
	    if user.key.id() != self.user_id:
		registration_ids.append(user.instants.gcm_regid)
	logging.info("%s" %registration_ids)
	if len(registration_ids) == 0:
	    self.response.write("")
	    return
	Bodyfields = {
	      "data": {"live":message,"username":userDetails.name,"bid":bid,"bname":bname,"atplace":atplace,"timestamp":secs,"instanttype":instanttype,'ohurl':ohurl},
	      "registration_ids": registration_ids
	     }
	result = urlfetch.fetch(url="https://android.googleapis.com/gcm/send",
			payload=json.dumps(Bodyfields),
			method=urlfetch.POST,
			headers={'Content-Type': 'application/json','Authorization': 'key=AIzaSyBNnXeISW8-KfETBKE-r0ASytx4WyC6NTk'})
	#self.response.out.write('Server response, status: ' + result.content )
        return result