首页 > 解决方案 > 您可以将 getstream.io js 客户端与 react native 一起使用而不是 react-native-activity-feed 吗?

问题描述

嗨 getstream 社区,

我正在使用 react native 和 node.js 构建一个提要应用程序。我正在努力使用 getstream.io js 客户端添加活动,但我可以使用 react-native-activity-feed 的<StatusUpdateForm/>组件来完成。js客户端出现以下错误:

An error occured when submitting activity: Error: {"detail":"You don't have the permission to do this","status_code":403,"code":17,"exception":"NotAllowedException","duration":"0.16ms"} with HTTP status code 403

我已设置后端向我发送用户令牌并初始化用户提要:

      const streamClient = stream.connect(STREAM_KEY, STREAM_SECRET, STREAM_ID);
      gsToken = streamClient.createUserToken(decodedToken.user_id);
      streamClient.feed('user', decodedToken.user_id);

在前端,我使用<StreaApp/>&渲染提要<FlatFeed/>

我已经设置了发布屏幕以在新闻中向提要发送示例活动:

    var client = stream.connect(config.stream.app.key, config.stream.app.token,  config.stream.app.id);
    var user_feed = client.feed('user', config.stream.app.userId);
    user_feed.addActivity({
      actor: config.stream.app.userId,
      tweet: 'Hello World I am finally here',
      verb: 'Tweet',
      object: 1
    })
      .then(function(data) { console.log('Activity Added! ' + data)})
      .catch(function(err) { console.log('An error occured when submitting activity: ' + err)});

旁注: 我想使用 js 客户端而不是 react-native 包,这样我可以在 UI 上拥有更大的灵活性。

标签: javascriptreact-nativegetstream-io

解决方案


使用用户令牌时,请务必致电setUser

let feed = client.feed("user", "jack");
await client.setUser({name: 'Jack'});

await userFeed.addActivity({
  actor: client.currentUser,
  verb: "post",
  object: "my object",
})

这将填充您可以用作演员的 client.currentUser 以及将用户数据存储在演员字段中。


推荐阅读