javascript - 您可以将 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 上拥有更大的灵活性。
解决方案
使用用户令牌时,请务必致电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 以及将用户数据存储在演员字段中。
推荐阅读
- python - 熊猫每 15 分钟重新采样一次,如果时间戳不存在,则使用最接近的值进行插值
- java - cassandra 中的提交日志分析
- javascript - 如何在网站上拥有不同级别的滚动速度
- reactjs - React-Apollo-GraphQL 通用查询和突变
- python-3.x - 返回列表中的所有正则表达式匹配
- c - 如何知道我的程序在哪里读取我的 int
- swiftui - 获得阻力速度的最佳方法是什么?
- javascript - 基于对象数组递归创建对象数组
- php - Laravel Eloquent 关系:如果我们已经预先加载了关系,我们是使用关系计数还是集合计数?
- python - 计算机将响应识别为不区分大小写