2

由于 Google Search API 已被弃用,我想在我的 Ruby 应用程序中使用 Bing Search API(现在是 Windows Azure API)。

但是,Azure 有一个奇怪的身份验证模式,您可以在其中构建查询 URI,将其粘贴到浏览器中,将密钥传递到标准 HTTP 身份验证框的密码框中,然后进行 POST 以查看结果。我假设这会生成一个签名并以某种方式将其传递到标头中。如果可能,我想在 Ruby 中完成整个过程并跳过浏览器部分。

我在一个不起眼的 Windows Azure storage gem的源代码中找到了一个示例,但我无法弄清楚他们是如何构建签名并进行调用的。有没有一种简单的方法可以在 Ruby 中进行基本的 HTTP 身份验证?

4

4 回答 4

2

我继续使用法拉第内置的基本身份验证方案,如下所示:

connection = Faraday.new "http://api.something.com/1/dudez"
connection.basic_auth "username" "password"
connection.get
于 2012-05-24T14:07:44.683 回答
1

我想为此推荐RestClient gem。我在跨域的 GET'ing 和 POST'ing 中使用它取得了巨大的成功。如果你真的必须像浏览器一样来实现 API,你总是可以使用Capybara

很抱歉我自己没有尝试过 Azure API,否则我会举个例子。:)

于 2012-05-22T11:53:48.200 回答
1

我记得以前使用另一个 Azure API 执行此操作,但找不到代码。

在此处查看签名过程的详细信息:

http://msdn.microsoft.com/en-us/library/windowsazure/ee395415.aspx

如果 Azure API 使用 SharedSignature 方法,我无法立即找到

于 2012-05-22T12:00:41.633 回答
0

此处描述了通过 REST API 对 Windows Azure blob 存储的请求进行签名的方法:http: //msdn.microsoft.com/en-us/library/dd179428.aspx

基本上,您不会通过简单地在 HTTP 标头中添加一些凭据来进行身份验证,您必须使用与您的存储帐户关联的密钥对您的请求进行签名。

于 2012-10-16T20:20:11.903 回答