Невозможно увидеть уведомление в раскрывающемся списке, когда действие добавляется в канал уведомлений. - PullRequest
1 голос
/ 22 мая 2019

Я пытаюсь разобраться с мнением getstream.io. Я планирую использовать его для реализации функций уведомлений.

Я использую компонент реагирования StreamApp на стороне клиента. На стороне сервера я использую Java-клиент. Я могу добавить активность в фид уведомлений. Я получаю уведомление и на стороне клиента об этом уведомлении. Однако я не могу увидеть это уведомление в раскрывающемся списке вместе с другими существующими уведомлениями.

Код стороны клиента (клиента):

<StreamApp
      apiKey="apikey"
      appId="appId"                                            token="token here">
         <NotificationDropdown notify />
</StreamApp>

Код серверной части (бэкэнда):

       Client client = Client.builder("api key", "secret key").build();
        NotificationFeed feed = client.notificationFeed("notification", "user-one");
        Activity activity = Activity.builder()
                .actor("Mr Beans")
                .verb("like")
                .object("hello world")
                .build();
        feed.addActivity(activity).join();

Когда я запускаю код на стороне сервера, я получаю всплывающее уведомление на внешнем интерфейсе. однако, когда я нажимаю на значок колокольчика, я не вижу уведомления, в котором говорится: «Мистеру Бинсу ​​понравился привет». Тем не менее, я могу видеть существующие, как показано ниже.

enter image description here

Любая помощь в том, как я могу увидеть то, что я публикую, была бы очень полезна. Заранее спасибо.

Примечание: ключ и токен API, которые я использую, взяты из примеров в документации.

С уважением, V * * тысяча двадцать-три

1 Ответ

1 голос
/ 24 мая 2019

Вы пытаетесь создать действие, представляющее реакцию пользователя.

Правильный способ сделать это достигается с помощью api реакции:

client.reactions().add(
    "user-one",                             // user ID
    "like",                                 // reaction name
    "ccc38e3e-7def-11e9-9154-127939012af0", // activity user is reacting to
    new FeedID("notification", "user-one")  // feed we want to receive an activity
).join();                                   // representing the reaction

Если вам абсолютно необходимо создать действиясамостоятельно - у вас есть два варианта:

  1. Копировать формат действия, которое генерирует поток:
import static io.getstream.core.utils.Enrichment.createUserReference;
...
Activity like = Activity.builder()
    .actor(createUserReference(user.getID())) // user reference
    .verb("like")
    .object("SA:" + targetActivity.getID())   // activity reference
    .build();

Activity follow = Activity.builder()
    .actor(createUserReference(user.getID()))
    .verb("follow")
    .object(createUserReference(targetUser.getID()))
    .build();
Переопределение NotificationDropdown метод рендеринга для поддержки вашего пользовательского формата активности (см. Уведомление исходный код компонента в качестве примера):
<StreamApp
    apiKey="<api-key>"
    appId="<app-ID>"
    token="<token>"
>
    <NotificationDropdown notify Group={MyCustomComponent}/>
</StreamApp>
...