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-legged 身份验证(这意味着您的应用程序已登录,但没有用户登录)。

如果它是 HTTP(如非 SSL)URL,那么您需要使用 HMAC-SHA1* 签名方法而不是 PLAINTEXT,因为您不希望您的消费者机密以纯文本形式通过网络传递。

如果他们允许 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 回答