def requestPush(): from pushjack import GCMClient client = GCMClient(api_key='AIzaSyDPX9-HMIeRu5t0Tj9n8QlosB1tIRDdXNg') from app.model.user import User tokens = [u.token for u in User.query.all()] dic = {"title":"제목"} client.send(tokens, dic) return "push"
def android(tokens, val, project_id): """ Sends push message to android clients. Args: - tokens(list): client token list - val(dict): including title, body, type, language, icon, image, badge. """ path = VAULT_PUSH_FCM_PATH.format(project_id=project_id) data = vault.read(path=path)['data'] api_key = data['api_key'] client = GCMClient(api_key=api_key) alert = val['extra'] options = { 'notification': { 'title': val['title'], 'body': val['body'], 'sound': 'default', 'color': "#009999", "icon": val['icon'] or 'default' }, 'collapse_key': 'collapse_key', 'delay_while_idle': True, # todo push message time to live 'time_to_live': 604800, } return client.send(tokens, alert, **options)
def _send(self, device_key, payload): if not self._api_key: raise PushAuthException() gcm_client = GCMClient(self._api_key) try: response = gcm_client.send([device_key], payload) if response.errors: raise response.errors.pop() canonical_id = None if response.canonical_ids: canonical_id = response.canonical_ids[0].new_id return canonical_id except GCMAuthError: raise PushAuthException() except (GCMMissingRegistrationError, GCMInvalidRegistrationError, GCMUnregisteredDeviceError): raise PushInvalidTokenException() except (GCMInvalidPackageNameError, GCMMismatchedSenderError, GCMMessageTooBigError, GCMInvalidDataKeyError, GCMInvalidTimeToLiveError): raise PushInvalidDataException() except (GCMTimeoutError, GCMInternalServerError, GCMDeviceMessageRateExceededError): raise PushServerException()
def sendPushAndroid(registration_id, msgType, msg): # app.logger.info(registration_id) from pushjack import GCMClient client = GCMClient(api_key='AIzaSyBOXBgTYT9--vmUTaULZQ7i4pYZH8DxYmA') # kwig server key : AIzaSyBOXBgTYT9--vmUTaULZQ7i4pYZH8DxYmA data = {"title" : "오아시스 알림", "message" : msg, "msgType" : msgType } try: res = client.send(registration_id, data, collapse_key='oasis_collapse_key', delay_while_idle=True, time_to_live=604800) ## Send to multiple devices by passing a list of ids. #client.send([registration_id], alert, **options) except Error as e: return e # app.logger.info(res.responses[0]) # <Response[200]> object # app.logger.info(res.messages) #[{u'delay_while_idle': True, u'collapse_key': u'collapse_key', u'time_to_live': 604800, u'data': {u'msg': u'\ud478\uc26c \uba54\uc2dc\uc9c0 \ud14c\uc2a4\ud2b8 \ubb38\uc790\uc5f4', u'msgType': 0}, u'registration_ids': [u'APA91bHLqdACwxPO3pSeDd8svkkX7fTBK9JjX69sTx9F5swpBuS2E_mR5IJSts-W8ysrn78k6rRJ5jzBP7zinoIyQpthAkYdcpM2lqSn41sdVuFE-sXlNvwhgajDgxKTcjaxafj327PzzAkkXWUBrWzle9vMPNbEtg']}] # app.logger.info(res.data) #[{u'failure': 0, u'canonical_ids': 0, u'success': 1, u'multicast_id': 4801399340784099008, u'results': [{u'message_id': u'0:1443685568008446%ffc9af726fbc52cd'}]}] # app.logger.info(res.registration_ids) # app.logger.info(res.successes) #[u'APA91bHLqdACwxPO3pSeDd8svkkX7fTBK9JjX69sTx9F5swpBuS2E_mR5IJSts-W8ysrn78k6rRJ5jzBP7zinoIyQpthAkYdcpM2lqSn41sdVuFE-sXlNvwhgajDgxKTcjaxafj327PzzAkkXWUBrWzle9vMPNbEtg'] # app.logger.info(res.failures) #[] # app.logger.info(res.errors) #[] # app.logger.info(res.canonical_ids) #[] return res.responses[0].content
def gcm_message(): if request.form.get('message'): gcmClient = GCMClient(api_key=os.environ.get('GCM_API_KEY')) alert = { 'subject': 'Subject goes here', # TODO: set a better subject 'message': request.form.get('message') } session = db.Session() gcm_id_list = [user.gcm_id for user in session.query(db.User).all()] session.close() response = gcmClient.send(gcm_id_list, alert, time_to_live=3600) if response: return ApiResponse({ 'message': 'Mesazhi u dergua' }) else: return ApiResponse({ 'message': 'Father, why have you forsaken me?' }) else: return ApiResponse({ 'message': 'Can\'t send a blank message...' })
def send_note(res): client = GCMClient(api_key = 'AIzaSyAhjC4roIPtvL9cwcSjjqlEVfgi94qvp0E') registration_id=['c1vU878e5Kc:APA91bGY4CEH00EUlgjuJcIHeMRmP8x6Bye6PNgBsTQ1SE_OnA05owpgj--8ukoYf5x5fa3AssZwuVYzS0eIQ-DUzGxZmUVr1hm125jhoZh4CZUqA41jV0Ji8mZMFql5g2hjTza2SLE8'] data = {'the_message' : '270@_@1@_@0@_@'+ str(res) +'@_@03/08/2015 15:00:06@_@https://s3-us-west-2.amazonaws.com/imagesketchupp/profile_pic1.png@_@https://s3-us-west-2.amazonaws.com/imagesketchupp/25a.jpg@_@http://www.fun54.com/wp-content/uploads/2011/08/beautiful-multi-colours-tortoise-wearing-a-blue-cap-saving-himself-with-rain-hd-wallpapers-1920-x-1200.jpg'} res_ = client.send(registration_id, data, collapse_key='collapse_key', delay_while_idle=False, time_to_live=604800)
def send_note(id_list,messag): client = GCMClient(api_key = 'AIzaSyAhjC4roIPtvL9cwcSjjqlEVfgi94qvp0E') # registration_id=['c1vU878e5Kc:APA91bGY4CEH00EUlgjuJcIHeMRmP8x6Bye6PNgBsTQ1SE_OnA05owpgj--8ukoYf5x5fa3AssZwuVYzS0eIQ-DUzGxZmUVr1hm125jhoZh4CZUqA41jV0Ji8mZMFql5g2hjTza2SLE8'] data = {'the_message' : messag} res_ = client.send(id_list, data, collapse_key='collapse_key', delay_while_idle=False, time_to_live=604800)
def send_note_me(res,_id,messag): client = GCMClient(api_key = 'AIzaSyAhjC4roIPtvL9cwcSjjqlEVfgi94qvp0E') registration_id=_id message=str(messag) data = {'the_message' : message} res_ = client.send(registration_id, data, collapse_key='collapse_key', delay_while_idle=False, time_to_live=604800)
def create_campaign(): session = db.Session() data = json.loads(request.data) hospital_id = request.args.get('hospital_id', 0) # hospital = session.query(db.Hospital).filter_by(_id=hospital_id).first() hospital = session.query(db.Hospital).first() name = data['name'] message = data['message'] bloodtypes = data['bloodtypes'] start_date = datetime.datetime.now() end_date = datetime.datetime.now() + datetime.timedelta(days=10) campaign = db.Campaign(hospital._id, name, message, start_date, end_date) session.add(campaign) session.commit() for bloodtype in bloodtypes: campaign_blood = db.CampaignBlood(campaign._id, bloodtype) session.add(campaign_blood) session.commit() gcmClient = GCMClient(api_key=os.environ.get('GCM_API_KEY')) alert = { 'subject': 'Fushate e re', 'message': campaign.hospital.name, 'data': { 'id': campaign._id, 'name': name, 'hospital': { 'name': campaign.hospital.name, 'latitude': campaign.hospital.latitude, 'longitude': campaign.hospital.longitude, }, 'message': message, 'start_date': to_timestamp(start_date), 'end_date': to_timestamp(end_date) } } interested_users = session.query(db.User).filter(db.User.blood_type.in_(bloodtypes)) gcm_id_list = [user.gcm_id for user in interested_users] session.close() response = gcmClient.send(gcm_id_list, alert, time_to_live=3600) if response: return ApiResponse({ 'status': 'ok' }) else: return ApiResponse({ 'status': 'some error occurred' })
def send_note_me(res,_id,messag): client = GCMClient(api_key = 'AIzaSyAhjC4roIPtvL9cwcSjjqlEVfgi94qvp0E') registration_id=_id message=str(messag) # message='285@_@1@_@0@_@'+ str(res) +'@_@03/08/2015 15:00:06@_@https://s3-us-west-2.amazonaws.com/imagesketchupp/profile_pic1.png@_@https://s3-us-west-2.amazonaws.com/imagesketchupp/25a.jpg@_@http://www.fun54.com/wp-content/uploads/2011/08/beautiful-multi-colours-tortoise-wearing-a-blue-cap-saving-himself-with-rain-hd-wallpapers-1920-x-1200.jpg' data = {'the_message' : message} res_ = client.send(registration_id, data, collapse_key='collapse_key', delay_while_idle=False, time_to_live=604800)
def send_notification(): if request.method=='POST': not_id=request.form['not_id'] mess_type=request.form['mess_type'] mess_body=request.form['mess'] mess_head=request.form['mess_head'] option1=request.form['op1'] option2=request.form['op2'] option3=request.form['op3'] op3bool=request.form['bool'] banner_url=request.form['banner_url'] send_type=request.form['send_type'] format_date='%Y-%m-%d %I:%M %p' now = datetime.datetime.now().strftime(format_date) if op3bool=="1": mess_bool=True elif op3bool=="0": mess_bool=False message_str=not_id+"@_@"+mess_type+"@_@0@_@"+mess_body+"@_@"+now+"@_@"+str(mess_bool)+"@_@" message_str=message_str+"https://s3-us-west-2.amazonaws.com/imagesketchupp/ketchupp_icon.png"+"@_@"+banner_url message_str=message_str+"@_@"+mess_head+"@_@"+option1+"@_@"+option2+"@_@"+option3 message= {'the_message' : '2351@_@2@_@0@_@Thanks for being part of Ketchupp!!@_@03/08/2015 15:00:06@_@\ https://s3-us-west-2.amazonaws.com/imagesketchupp/profile_pic1.png@_@https://s3-us-west-2.amazonaws.com/imagesketchupp/25a.jpg@_@http://www.fun54.com/wp-content/uploads/2011/08/beautiful-multi-colours-tortoise-wearing-a-blue-cap-saving-himself-with-rain-hd-wallpapers-1920-x-1200.jpg'} # data={'the_message':str(message_str)} client = GCMClient(api_key = 'AIzaSyAhjC4roIPtvL9cwcSjjqlEVfgi94qvp0E') registration_id=['eA1osdrEM8Y:APA91bGONONBO3AOUNZ2jGj-WYMP-QQlTtEv_BhM44i8XJQMCWd3-xQ56B53XyM-UQdUmVbzx7a8MP_0BMFhgHkG8B256Rfgjh-balgf71akBRkabmGxA4ZAucKf3gEQCmWmpBve1aQn'] res = client.send(registration_id, message, collapse_key='collapse_key', delay_while_idle=False,time_to_live=604800) print "--------------------response---------------" print res.errors print res.successes print res.failures print res.registration_ids print res.responses print res.data print "--------------------------------------------" return json.dumps({"error": ':::'.join(res.errors), "success":':::'.join(res.successes)}) return "error"
def _send(self, device_key, payload): if not self._api_key: raise PushAuthException() gcm_client = GCMClient(self._api_key) try: response = gcm_client.send( [device_key], payload ) if response.errors: raise response.errors.pop() canonical_id = None if response.canonical_ids: canonical_id = response.canonical_ids[0].new_id return canonical_id except GCMAuthError: raise PushAuthException() except (GCMMissingRegistrationError, GCMInvalidRegistrationError, GCMUnregisteredDeviceError): raise PushInvalidTokenException() except (GCMInvalidPackageNameError, GCMMismatchedSenderError, GCMMessageTooBigError, GCMInvalidDataKeyError, GCMInvalidTimeToLiveError): raise PushInvalidDataException() except (GCMTimeoutError, GCMInternalServerError, GCMDeviceMessageRateExceededError): raise PushServerException() except: raise PushServerException()
# import requests # url = 'http://sing-ketchupp-v1.elasticbeanstalk.com/byspecificrestaurant' # param = { # 'rest_id':'1012001', # 'dish_id':'101200111', # 'ketchupp_id':'0' # } # res = requests.post(url,data = {"rest_id":"1012001","dish_id":"101200111","ketchupp_id":"0"}) # res = res.json() # arr=res["restaurants"]["dish_details"][0] # print arr["dish_id"] # # [email protected] # # imakmob_aws # #ec2-52-10-198-34.us-west-2.compute.amazonaws.com from pushjack import GCMClient message= {'the_message' : '2351@_@2@_@0@_@Thanks for being part of Ketchupp!!@_@03/08/2015 15:00:06@_@\ https://s3-us-west-2.amazonaws.com/imagesketchupp/profile_pic1.png@_@https://s3-us-west-2.amazonaws.com/imagesketchupp/25a.jpg@_@http://www.fun54.com/wp-content/uploads/2011/08/beautiful-multi-colours-tortoise-wearing-a-blue-cap-saving-himself-with-rain-hd-wallpapers-1920-x-1200.jpg'} # data={'the_message':str(message_str)} client = GCMClient(api_key = 'AIzaSyAhjC4roIPtvL9cwcSjjqlEVfgi94qvp0E') registration_id=['eA1osdrEM8Y:APA91bGONONBO3AOUNZ2jGj-WYMP-QQlTtEv_BhM44i8XJQMCWd3-xQ56B53XyM-UQdUmVbzx7a8MP_0BMFhgHkG8B256Rfgjh-balgf71akBRkabmGxA4ZAucKf3gEQCmWmpBve1aQn'] res = client.send(registration_id, message, collapse_key='collapse_key', delay_while_idle=False,time_to_live=604800)
def loadUniv(): if request.method == 'GET': cursor.execute('select * from univ_information') result = [] columns = tuple( [d[0] for d in cursor.description] ) for row in cursor: result.append(dict(zip(columns, row))) return json.dumps(result) if request.method == 'POST': toaddr = request.form['email'] univNumber = request.form['univNumber'] fromaddr = '*****@*****.**' gcmId = [] query = "select GcmId from gcm_information where Email='" + toaddr + "';" cursor.execute(query) gcmId = str(cursor.fetchone()[0]) fileName = [] query = "select FileName from univ_information where UnivNumber='" + univNumber + "';" cursor.execute(query) fileName = str(cursor.fetchone()[0]) msg = MIMEMultipart() msg['From'] = fromaddr msg['To'] = toaddr msg['Subject'] = 'Univ Cover' body = 'Have a nice day!~' msg.attach(MIMEText(body, 'plain')) attachment = open(COVER_FOLDER+fileName, "rb") part = MIMEBase('application', 'octet-stream') part.set_payload((attachment).read()) encoders.encode_base64(part) part.add_header('Content-Disposition', "attachment; filename= %s" % fileName) msg.attach(part) server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login(fromaddr, 'dbswltn213') text = msg.as_string() server.sendmail(fromaddr, toaddr, text) server.quit() client = GCMClient(api_key='AIzaSyCcFYoLmotIiI9M1l_oTyp8xdVr4lL-y_I') gcmMsg = "cover transmission complete" message = {"title":"ReportCover", "message":gcmMsg, "count":34} client.send(gcmId, message); query = "select RefCount from univ_information where UnivNumber='" + univNumber + "';" cursor.execute(query) temp = str(cursor.fetchone()[0] + 1) print(temp) query = "update univ_information set RefCount=" + temp + " where UnivNumber='" + univNumber + "';" print(query) cursor.execute(query) conn.commit() return 'ok' return 'error'