PyFCM subscribe_registration_ids_to_topic () не создает тему Firebase Cloud Messaging - PullRequest
0 голосов
/ 17 октября 2018

Я использую PyFCM, найденный здесь , для отправки push-уведомлений в мое Ionic App из Django Rest Framework через Firebase Cloud Messaging.

Проблема в том, что subscribe_registration_ids_to_topic (), по-видимому, фактически не создает тему в Firebase.Я понимаю, что:

(1) Подписка пользователя на тему, которая еще не создана, создаст тему и подпишет пользователя на нее.

(2) Консоль Firebase может занятьдо 14 часов, чтобы показать вновь созданные темы.Прошло более 28 часов с тех пор, как я подписал пользователя на тему

(3) Вновь созданная тема должна быть доступна для немедленного использования, и примерно через 14 часов тема должна быть доступна для использования в консоли Firebase.

Моя точная проблема заключается в том, что после вызова subscribe_registration_ids_to_topic() я не вижу созданной темы, даже после 28+ часов

Вот как я использовал библиотеку. Если вы заметили, у меня есть push_service.notify_single_device(), который отправляетуведомление, как и ожидалось.Ниже этой строки находится push_service.notify_topic_subscribers(), которая НЕ отправляет уведомление: в models.py

from pyfcm import FCMNotification
push_service = FCMNotification(api_key="my-api-key")

push_service.notify_topic_subscribers(topic_name="test", 
message_body="Hello Test Members!")

class Group(models.Model):
name = models.CharField(max_length=80)
group_image = models.ImageField(blank=True, null=False)
description = models.TextField(blank=True, null=True)
userprofiles = models.ManyToManyField(Userprofile, null=True, blank=True)
ministry = models.ForeignKey(Ministry, on_delete=models.CASCADE,null=True, blank=True)

def save(self, *args, **kwargs):

    #send push notification
    registration_id = "my-registration-id"
    message_title = "New Group Added!"
    message_body = "check out our new group %s" % self.name
    result = push_service.notify_single_device(registration_id=registration_id, message_title=message_title,
                                               message_body=message_body)

    topic_message = push_service.notify_topic_subscribers(topic_name="test", message_body="Hello Test Members!")

    super(Group, self).save(*args, **kwargs)

, поэтому я знаю, что мои настройки верны в том, что касается инициализации FCM / PyFCM, вот код, который НЕ работаеткак и ожидалось.В views.py:

@api_view(['POST'])
@permission_classes((AllowAny,))
def subscribeToTopic(request):
    #device token is also known as registration token
    topic = request.data['topic']
    device_token = request.data['device_token']
    tokens_array = [device_token]

    #Subscribe REQUIRES an ARRAY!!!!
    subscribed = push_service.subscribe_registration_ids_to_topic(tokens_array, topic)

    return Response({'message': subscribed})

В последней строке чуть выше оператора return у меня есть push_service.subscribe_registration_ids_to_topic(tokens_array, topic).Согласно PyFCM docs, это должно возвращать true, если пользователь успешно подписан на тему, которую он возвращает true, но нет темы, созданной или подписанной, и ни одна тема не появляется в консоли Firebase даже после полного дня.

...