c# - Twitter 实现 OAuth 是否超出规范? (C#)

标签 c# oauth twitter

我已经与 OAuth 和 Twitter 斗争了 2 周,现在试图实现它。在多次重写我的代码之后,我终于得到了一个执行请求的库,因为它应该基于 1.0 规范。我已经使用 this verifier on Google Code 验证了它, 和 this verifier from Hueniverse .

我的版本、谷歌版本和 Hueniverse 版本都产生了完全相同的签名,所以我得出结论,我不再是原因(但我可能会说这个是在打我的嘴......) .

我通过首先使用 Twitter 的 API 控制台创建测试请求来测试我的实现,在本例中是状态更新。我将更改的参数 oauth_nonce 和 oauth_timestamp 复制到上述所有三个签名者中。所有其他参数总是相同的, token / secret /等等。

Twitter 的控制台生成一个签名,但其他三个以上都生成不同的签名(来自 Twitter,彼此相同)。

所以,我的问题是,为什么我会得到这个:

<?xml version="1.0" encoding="UTF-8"?>
<hash>
    <request>/1/statuses/update.xml</request>
    <error>Could not authenticate with OAuth.</error>
</hash>

...我应该在什么时候对“T”实现规范?

作为请求的一部分,Twitter 需要/想要什么具体的东西吗?我将 Twitter 生成的随机数计算为 42 个字符长,对吗?它应该是 42 个字符长吗?

如果有人比我更了解 API,我将不胜感激...

提前致谢!

更新:有人问我如何发送身份验证参数,但后来删除了他们的帖子,我不知道为什么。无论如何,授权参数是通过授权 header 发送的。

更新/解决方案: 作为答案向下移动到底部。

最佳答案

我在以 Twitter 作为主要目标实现 OAuth 规范时遇到的唯一问题是,Twitter 已将随机数限制为仅接受 ASCII 字符(而该规范实际上允许任何字节)。因此,我更改了我的实现以生成一个随机 int(60 位,所以长于 42 个字符)。

除此之外,Twitter 的实现似乎是完全正确的;至少我没有任何问题。

我建议您使用许多 OAuth 沙盒中的一些(例如 thisthis)来真正检查是否一切正常,例如您是否将所有必要的内容都包含在签名中等。

关于c# - Twitter 实现 OAuth 是否超出规范? (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3169600/

相关文章:

c# - 如何在angularjs中使用ng-repeat渲染mathml?

python - Flickr API : Upload an image with python

c# - 如何通过 OAuth 2.0 从 ebay 获取访问 token

oauth-2.0 - 如何使用 OIDC/OAuth 保护 API

c# - 重叠替换正则表达式?

c# - 哪个更快?++、+= 或 x + 1?

C# MySQL 多行结果到组合框

node.js - 在 node.js 中检索特定用户的最后 3200 条推文

javascript - 使用正则表达式和 javascript 解析 twitter @name

javascript - Facebook Like 和 Twitter Tweet 加载缓慢