Проблема с Python-gcm без ответа от сервера GCM

В настоящее время я пытаюсь завершить реализацию push-уведомлений Android с помощью python-gcm и сталкиваюсь с проблемами, когда я не получаю ответ от сервера GCM при отправке уведомлений.

Я подтвердил, что получаю device_id, и что используемые API-ключ / идентификатор отправителя API верны, и я получаю успешный ответ, как только я подключаюсь к серверу GCM, но я все еще не вижу push-уведомлений на моем устройстве,

Обычно это происходит из-за неправильной настройки GCM в консоли разработчика Google?

Впервые реализовав это, я уверен, что может быть что-то общее, что я пропустил.

Ниже приведен пример кода фляги-gcm, который я настроил. Я получаю ответ об успешном завершении, должно быть, что-то не хватает в настройке Google, я думаю.

 if device.platform == 'Android':
        # data = {'param1': 'value1', 'param2': 'value2'}
        data = {'data': message}

        # Set the device id
        reg_id = device.device_id

        Logger.info('Before sending the push JSON ' + str(reg_id))

        # Pass in the reg id of who to send to
        multicast = JSONMessage([reg_id], data, dry_run=False)

        try:
            # attempt send
            res_multicast = gcm_service.send(multicast)

            for res in [res_multicast]:
                # nothing to do on success
                for reg_id, msg_id in res.success.items():
                    Logger.info("Successfully sent %s as %s" % (reg_id, msg_id))
                    Logger.info("THIS IS THE REG ID THAT WAS SENT TO: " + str(reg_id))
                    Logger.info("THIS IS THE MESSAGE ID THAT WAS SENT " + str(msg_id))
                    Logger.info("RES SUCESS ITEMS: " + str(res.success.items()))

                # update your registration ID's
                for reg_id, new_reg_id in res.canonical.items():
                    Logger.info("Replacing %s with %s in database" % (reg_id, new_reg_id))

                # probably app was uninstalled
                for reg_id in res.not_registered:
                    Logger.info("Removing %s from database" % reg_id)

                # unrecoverably failed, these ID's will not be retried
                # consult GCM manual for all error codes
                for reg_id, err_code in res.failed.items():
                    Logger.info("Removing %s because %s" % (reg_id, err_code))

                # if some registration ID's have recoverably failed
                if res.needs_retry():
                    # construct new message with only failed regids
                    retry_msg = res.retry()
                    # you have to wait before attemting again. delay()
                    # will tell you how long to wait depending on your
                    # current retry counter, starting from 0.
                    # Logger.info("Wait or schedule task after %s seconds" % res.delay(retry))
                    # retry += 1 and send retry_msg again

        except GCMAuthenticationError:
                # stop and fix your settings
                print "Your Google API key is rejected"
        except ValueError, e:
                # probably your extra options, such as time_to_live,
                # are invalid. Read error message for more info.
                print "Invalid message/option or invalid GCM response"
                print e.args[0]
        except Exception:
                # your network is down or maybe proxy settings
                # are broken. when problem is resolved, you can
                # retry the whole message.
                print "Something wrong with requests library"

0 ответов

Другие вопросы по тегам