Hi 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方面拥有更大的灵活性。
答案 0 :(得分:0)
使用用户令牌时,请确保致电const id = admin.firestore().collection('users').get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
console.log(doc.id, ' => ', doc.data());
});
})
.catch(function(error) {
console.log('Error getting documents: ', error);
});
setUser
这将填充client.currentUser,您可以将其用作actor并将用户数据存储在actor字段中。