致所有人:
这是我第一次使用OAuth,我需要使用Flickr API。在给出的示例中,它们显示一个“基字符串”,后跟一个28到32个字符的签名。在本页靠近页面顶部的“签名请求”下:
https://www.flickr.com/services/api/auth.oauth.html
例如,当粘贴到浏览器的地址框中时,它们在“获取请求令牌”下列出的URL会生成正确的响应代码。这:
https://www.flickr.com/services/oauth/request_token
?oauth_nonce=95613465
&oauth_timestamp=1305586162
&oauth_consumer_key=653e7a6ecc1d528c516cc8f92cf98611
&oauth_signature_method=HMAC-SHA1
&oauth_version=1.0
&oauth_signature=7w18YS2bONDPL%2FzgyzP5XTr5af4%3D
&oauth_callback=http%3A%2F%2Fwww.example.com
在浏览器中生成此响应:
oauth_callback_confirmed=true&oauth_token=72157702939465392-776fe14f70421bd4&oauth_token_secret=d66fb595796cdf5a
我不知道如何成功地生成“oauth_签名”。我现在只知道:
它涉及HMAC-SHA1加密。
这似乎与UTF-8编码有关,但我不清楚如何实现。
Base64编码也在某些地方出现,但我不清楚如何实现。
我曾试图反向工程如何获得他们的签名以“7w18”开头,没有成功,在各种在线解析器。我得到的只是更长的琴弦。
甚至OAuth主页(
https://oauth1.wp-api.org/docs/basics/Signing.html
)承认签署请求是使用该平台最困难的部分之一。我现在很肯定地看到了这一点,我知道,从无数关于这个问题的问题中,我并不是唯一一个对此感到困惑的人。
我已经成功地创建了一个Flickr帐户,它有一个“Key”(一个相当长的十六进制字符串)和一个“Secret”(另一个十六进制字符串,长度约为它的一半)。
我想生成Java和/或C#代码来生成一个URL,它的工作方式与上面的Flickr示例完全相同。我好像是在搞加密。
有人知道为OAuth生成SHA1签名的最佳方法吗?谢谢!!!