OneSignal / onesignal-python-api

Other
15 stars 6 forks source link

[Bug]: JSONDecodeError Expecting value: line 1 column 1 (char 0) #24

Open ahmedesmail07 opened 11 months ago

ahmedesmail07 commented 11 months ago

What happened?

When attempting to send a notification using the OneSignal SDK, a JSON decoding error is encountered, resulting in the following message: JSONDecodeError: Expecting value: line 1 column 1 (char 0). This issue occurs consistently when attempting to send a notification using the provided client.send_notification function. This error has been occurred about 6 times only for the last 30 days.

Snippet of code:

@shared_task(bind=True)
def notify_user(self, id):
    if settings.TEST:
        logger.info("push notification on CircleCi")
        return
    try:
        instance = NotificationModel.objects.get(pk=id)
    except NotificationModel.DoesNotExist:
        logger.info('Notification is not found')
        return
    notification = dict()
    if settings.ONESIGNAL_SANDBOX:
        to = [settings.ONESIGNAL_TEST_PLAYER_ID]
    elif not instance.user.devices.exists():
        logger.info('User {} has not devices attached'.format(instance.user.email))
        return
    else:
        to = list(map(lambda d: d.player_id, instance.user.devices.filter(player_id__isnull=False)))
        if len(to) == 0:
            return
    notification['include_player_ids'] = to
    notification['contents'] = {
        'en': instance.content
    }
    notification['headings'] = {
        'en': instance.title,
    }
    notification['ios_badgeType'] = 'Increase'
    notification['ios_badgeCount'] = 1
    try:
        response = client.send_notification(notification)
    except Exception as e:
        logger.info(f"Error is {e}")
        raise self.retry(max_retries=5, countdown=(30), exc=e)
    return response.body

Steps to reproduce?

1- Error when sedning some notifications for the users.

What did you expect to happen?

I expected all notifications to be sent successfully.

Relevant log output

'<!DOCTYPE html>\n<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->\n<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->\n<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->\n<!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->\n<head>\n<title>Access denied | onesignal.com used Cloudflare to restrict access</title>\n<meta charset="UTF-8" />\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\n<meta http-equiv="X-UA-Compatible" content="IE=Edge" />\n<meta name="robots" content="noindex, nofollow" />\n<meta name="viewport" content="width=device-width,initial-scale=1" />\n<link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/main.css" />\n\n\n<script>\n(function(){if(document.addEventListener&&window.XMLHttpRequest&&JSON&&JSON.stringify){var e=function(a){var c=document.getElementById("error-feedback-survey"),d=document.getElementById("error-feedback-success"),b=new XMLHttpRequest;a={event:...

Code of Conduct