yasir
yasir

Reputation: 137

GCM python Server side Implementation : Error=MissingRegistration

I am implementing GCM push service on server side and facing error in response from GCM => Error=MissingRegistration

Does anyone know why this error occurs?

Sample code is:

    def make_request(self, data, is_json=True):

        headers = {
            'Authorization': 'key=%s' % self.api_key,
        }
        # Default Content-Type is defaulted to application/x-www-form-urlencoded;charset=UTF-8
        if is_json:
            headers['Content-Type'] = 'application/json'

        if not is_json:
            data = urllib.urlencode(data)
        req = urllib2.Request(GCM_URL, data, headers)

        try:
            response = urllib2.urlopen(req).read()
        except urllib2.HTTPError as e:
            if e.code == 400:
                raise GCMMalformedJsonException("The request could not be parsed as JSON")
            elif e.code == 401:
                raise GCMAuthenticationException("There was an error authenticating the sender account")
        except urllib2.URLError as e:
            raise GCMConnectionException("There was an internal error in the GCM server while trying to process the request")

        if is_json:
            response = json.loads(response)
        return response

if __name__ == '__main__':
data = {
    'param1': '1',
    'param2': '2'
}
_gcm = GCM('AIzaSyC0lft1_11RGk2aMyt6hoNolC3in5rN50Y')
res = _gcm.construct_payload(
    registration_ids=['APA91bF9MFLWBhZ7y4F87z0D8enceLxOD1GLl92cQSF9lp5Z-VlhxX'], data=data, collapse_key='foo',
    delay_while_idle=True, time_to_live=3600, is_json=True
)
payload = json.loads(res)

result = _gcm.make_request(payload, False)

Upvotes: 1

Views: 3820

Answers (1)

yasir
yasir

Reputation: 137

issue is resolved this code works

 def make_request(self):
            json_data = {"collapse_key" : "msg", 
                         "data" : {
                                   "data": "xyz",
                       }, 
                    "registration_ids": ['APA91bGi13Rg2l_*******beNOGxxP25o0hmtpg'],
            }


            url = 'https://android.googleapis.com/gcm/send'
            myKey = "AIza********N50Y" 
            data = json.dumps(json_data)
            headers = {'Content-Type': 'application/json', 'Authorization': 'key=%s' % myKey}
            req = urllib2.Request(url, data, headers)
            f = urllib2.urlopen(req)
            response = json.loads(f.read())


            self.response.out.write(json.dumps(response,sort_keys=True, indent=2) )    

Upvotes: 3

Related Questions