2016-10-11 1 views
2

Je continue d'obtenir "Vous n'êtes pas autorisé à effectuer cette action". lors de la tentative de connexion. Qu'est-ce que je rate?Erreur d'autorisation d'action avec l'API de flux

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) 
+1

Passez-vous une clé API réelle? –

+0

Oui, API_KEY est juste pour cet exemple. – Stephen

Répondre

2

Il semble que vous ayez tout compris, à l'exception de la valeur de feed_id dans la charge utile. Ce devrait être le "user12353253" au lieu de "user: 12353253" (pas de point-virgule).

P.S. Je suis l'un des fondateurs de Stream, l'API REST ne l'explique pas bien. Nous les mettrons à jour dès que possible.

+0

C'était tout. J'ai compris cela après avoir creusé à travers le client de rubis. Les normes de nommage dans les docs ont besoin d'être mises à jour, juste pour info. https://getstream.io/docs_rest/#naming Merci pour votre aide et votre produit très cool. – Stephen

0

Est-il nécessaire d'utiliser HTTParty? Stream has a Ruby library cela rend beaucoup, beaucoup plus facile et le JWT travaille dans les coulisses pour vous.

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) 

Par défaut, cela devrait faire JWT pour vous.

Si vous voulez vraiment le faire vous-même, vous pouvez suivre ce que fait la bibliothèque cliente et le reproduire.

+0

Impossible d'utiliser les bibliothèques, malheureusement, et les documents de l'API REST ne contiennent pas d'informations importantes qui diffèrent de la norme. – Stephen

+0

@Stephen quel est le problème de blocage qui vous empêche d'utiliser le client API? Peut-être que c'est quelque chose qui peut être fixé sur la bibliothèque. –