Stream API 的操作权限错误
Action permission error with Stream API
我在尝试连接时一直收到 "You do not have permission to perform this action."。我错过了什么?
url = 'https://api.getstream.io/api/v1.0/feed/user/12353253/?api_key=API_KEY'
payload = {
'resource' => 'feed',
'action' => 'read',
'feed_id' => 'user:12353253'
}
token = JWT.encode(payload, secret, 'HS256')
options[:headers] = {
'Authorization' => token,
'stream-auth-type' => 'jwt'
}
response = HTTParty.get(url, options)
有使用HTTParty的要求吗? Stream has a Ruby library 这让这一切变得非常非常容易,并且 JWT 会在幕后为您工作。
client = Stream::Client.new('API_KEY', 'API_SECRET', :location => 'us-east')
user_feed = client.feed('user', 12353253.to_s)
results = user_feed.get(:limit => 10)
默认情况下,这应该为您执行 JWT。
如果你真的想自己做,你可以跟踪客户端库在做什么并重现它。
看起来您的一切都正确,除了负载中 feed_id
的值。它应该是 "user12353253" 而不是 "user:12353253" (没有分号)。
P.S。
我是 Stream 的创始人之一,REST API 对此没有很好的解释。我们会尽快更新。
我在尝试连接时一直收到 "You do not have permission to perform this action."。我错过了什么?
url = 'https://api.getstream.io/api/v1.0/feed/user/12353253/?api_key=API_KEY'
payload = {
'resource' => 'feed',
'action' => 'read',
'feed_id' => 'user:12353253'
}
token = JWT.encode(payload, secret, 'HS256')
options[:headers] = {
'Authorization' => token,
'stream-auth-type' => 'jwt'
}
response = HTTParty.get(url, options)
有使用HTTParty的要求吗? Stream has a Ruby library 这让这一切变得非常非常容易,并且 JWT 会在幕后为您工作。
client = Stream::Client.new('API_KEY', 'API_SECRET', :location => 'us-east')
user_feed = client.feed('user', 12353253.to_s)
results = user_feed.get(:limit => 10)
默认情况下,这应该为您执行 JWT。
如果你真的想自己做,你可以跟踪客户端库在做什么并重现它。
看起来您的一切都正确,除了负载中 feed_id
的值。它应该是 "user12353253" 而不是 "user:12353253" (没有分号)。
P.S。 我是 Stream 的创始人之一,REST API 对此没有很好的解释。我们会尽快更新。