2016-10-11 9 views
2

「この操作を実行する権限がありません。」接続しようとしているとき。私は何が欠けていますか?ストリームAPIの操作許可エラー

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

実際のAPIキーを渡していますか? –

+0

はい、API_KEYはこの例のためのものです。 – Stephen

答えて

2

ペイロード内のfeed_idの値を除いてすべてが正しいと思われます。 「user:12353253」(セミコロンなし)ではなく「user12353253」である必要があります。

P.S. 私はStreamの創始者の一人ですが、REST APIはこれをうまく説明していません。我々はできるだけ早くそれらを更新します。

+0

それはそれでした。私はルビークライアントを掘り出した後にそれを理解しました。ドキュメントの命名標準は、FYIに更新する必要があります。 https://getstream.io/docs_rest/#namingご協力いただきありがとうございました。 – Stephen

0

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が必要です。

あなたが本当に自分でやりたければ、クライアントライブラリが何をしているのかをトレースして再現することができます。

+0

ライブラリを使用することはできません。残念ながら、REST APIドキュメントには、標準とは異なる重要な情報がありません。 – Stephen

+0

@Stephen APIクライアントを使用できないようにするブロッキングの問題は何ですか?おそらくこれはライブラリ上で修正できるものです。 –

関連する問題