我正在努力让自己了解getstream.io。我打算将其用于实现通知功能。
我正在客户端使用React组件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();
运行服务器端代码时,在前端出现通知气泡。但是,当我单击响铃图标时,看不到提示““豆先生喜欢你好世界”的通知。但是,我可以看到现有的,如下所示。
任何有关如何查看正在发布的活动的帮助都非常有用。预先感谢。
注意:我使用的api密钥和令牌来自文档中的示例。
关于, V
答案 0 :(得分:1)
您正在尝试创建一个代表用户反应的活动。
执行此操作的正确方法是通过反应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
如果您绝对需要自己创建活动-您有两种选择:
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
渲染方法以支持您的自定义活动格式(例如,请参见Notification组件源代码):<StreamApp
apiKey="<api-key>"
appId="<app-ID>"
token="<token>"
>
<NotificationDropdown notify Group={MyCustomComponent}/>
</StreamApp>