我试图使用getstream.io的客户端功能 (特别是提要和实时更新)在使用react-native构建的本机应用程序上构建流。当我尝试使用从我的服务器传递的令牌在javascript代码中初始化客户端时,我收到错误:
[Error: Missing app id, which is needed to subscribe, use var client = stream.connect(key, secret, appId);]
然而,当我添加秘密和appId时(出于测试目的,我会非常警惕像这样部署)我得到错误:
[Error: You are publicly sharing your private key. Dont use the private key while in the browser.]
有没有办法让使用Expo运行客户端版本(Create React Native App默认值)而不从Create React Native App中弹出?
答案 0 :(得分:2)
出于安全原因,您无法使用JS客户端生成令牌客户端,因为这需要共享您的Api Key Secret。
前进的方法是让后端创建特定于订阅源的令牌并将其发送到客户端应用程序。
服务器端(Ruby):
require 'stream'
client = Stream::Client.new('YOUR_API_KEY', 'API_KEY_SECRET')
feed = client.feed('user', '1')
token = feed.token
客户端(JS):
client = stream.connect('YOUR_API_KEY', null, 'SITE_ID');
user1 = client.feed('user', '1', token);