【发布时间】:2011-05-04 08:30:01
【问题描述】:
我正在编写一个小的 ruby 程序来通过 OAuth 使用 Twitter,但还没有找到正确的方法来执行 HMAC-SHA1 签名。到目前为止,我搞砸了
Base64.encode64(OpenSSL::HMAC.hexdigest(digest, key, stuff)).chomp
但这会输出 Twitter 拒绝的东西,而不是有效的签名。我实际上以更糟糕的方式解决了它,请尽量不要打我:
php -r "echo rawurlencode(base64_encode(hash_hmac('sha1', '#{@signature}', '#{llave}', true)));"
最后一个确实有效,我可以到处做我的事情。
我想要一些关于如何在不回到 PHP 的情况下实际执行此操作的提示。在尝试学习一门语言时,我不太喜欢图书馆,所以宝石几乎是不可能的。
谢谢!
【问题讨论】:
-
只是想知道,为什么不使用标准的 ruby-oath 和 twitter gems?
-
@slainer68 我很想通过将大型生产应用程序的一小部分“翻译”成 ruby 来学习这门语言。当我精通 PHP 时,使用 gems 就没有问题了。
-
在 php 中你正在做一个 url 编码,而你没有在 ruby 中这样做。先试试看效果如何。
标签: ruby cryptography twitter-oauth sha1