我正在使用 imgur 的 API,需要设置 oAuth 身份验证。进展很顺利,但我遇到了障碍......
我无法让 oAuth request_token 端点向我发送成功消息,因此我联系了 imgur 开发人员,他们给了我一条关键信息。但是,我找不到这些信息的来源。
我所说的信息是我的oAuth 签名。我知道 oAuth 签名只是我的api_secret,但是在 imgur 开发人员提供的工作代码中,最后有一个 & 标记。
这个 & 符号是 URL 编码的,两次。它从&
到%26
,然后到%2526
API Secret => 7fc6ff69*snip*c4016e7f99e076 // This does not work by itself
[oauth_signature] => 7fc6ff69*snip*c4016e7f99e076%2526 // Works
[oauth_signature] => 7fc6ff69*snip*c4016e7f99e076& // This also works
为什么需要 & 符号?这是一个错误,还是在oAuth 1.0 文档中的某个地方确实提到过?它总是一个&符号,还是只是一个奇怪的巧合?我不知道它是从哪里来的...
编辑:值得一提的是 oauth_signature 是请求中的最后一个变量,所以它不应该与另一个变量合并。基本上,URL 的结尾必须以 & 符号(或 html 编码的版本)结尾。