0

私はAPIを介してNetflixを検索しようとしていますが、誰もログインしていません(これはバックエンドで実行したいので、必ずしもユーザーアクションに関連しているとは限りません)。私は彼らのAPIから始めたばかりなので、私が完全に愚かなことをしているなら、私を許してください。アクセスしようとしているURLは次のとおりです。

http://api.netflix.com/catalog/titles/?oauth_consumer_key=MY_CONSUMER_KEY&oauth_token_secret=MY_SECRET&term=fight+club

しかし、それは私に400 Bad Requestエラーを与えます。ユーザーが最初にアプリケーションにサインインしない限り、Netflixカタログを閲覧/検索する方法はありませんか?それとも私は何か間違ったことをしていますか?

注:リクエストのみを実行したいので、ブラウザを介して上記のURLにアクセスGETしています。これは、ブラウザがデフォルトで実行する機能です。

4

1 に答える 1

2

OAuthを使用する場合、共有シークレットのみを使用し、ユーザートークンを使用しない2脚認証を使用している場合でも、リクエストの署名を計算する必要があります(つまり、アプリケーションはログインしていますが、ユーザーはログインしていません)。

HTTP(非SSLの場合など)のURLの場合は、プレーンテキストでコンシューマーシークレットがネットワークを介して渡されることを望まないため、PLAINTEXTではなくHMAC-SHA1*署名方式を使用する必要があります。

HTTPS URLが許可されている場合は、PLAINTEXTメソッドを使用できますが、 https://datatracker.ietf.org/doc/html/draft-hammer-oauth-10#page-27に従って計算する必要があります。を渡すoauth_signature代わりに、クエリ文字列パラメータとして渡しoauth_token_secretます。oauth_signature_method=PLAINTEXTパラメータとしても渡す必要があることに注意してください。

また、戻ってくる応答を確認する価値があるかもしれません。彼らがOAuth問題報告拡張機能を実装している場合、それはあなたに何が悪いのかについての助けを与えるかもしれません。


*または共有秘密を暗号化する別の方法

于 2010-03-31T12:02:53.220 に答える