【问题标题】:How to use OAuth 1.0 in Visual Basic?如何在 Visual Basic 中使用 OAuth 1.0?
【发布时间】:2017-11-25 00:44:33
【问题描述】:

我正在尝试为 Tumblr 或 Twitter 制作一个机器人,但两者都需要 OAuth 请求。我不确定如何以这种方式使用 Net.WebRquest。我到处搜索,发现非常稀缺的信息。我相信我应该在标题中添加一些凭据。这是我尝试过的:

<pre>
    Dim request As WebRequest = WebRequest.Create(URL)
    request.Headers.Add(HttpRequestHeader.Authorization,
      $"OAuth realm=""https://api.tumblr.com/"",
      oauth_consumer_key=""{APIKEY}"",
      oauth_token=""{TOKEN}"",
      oauth_signature_method=""HMAC-SHA1"",
      oauth_signature=""?"",
      oauth_timestamp=""{(Now - New DateTime(1970, 1, 1)).TotalSeconds}"",
      oauth_nonce=""{Now.GetHashCode()}"",
      oauth_version=""1.0""")
<pre>

假设 APIKEY 和 TOKEN 有效,我仍然收到错误 401:未经授权。另外,我在“oauth_signature”中放了什么?这对我来说没有任何意义。该网站包含最有用的信息:https://oauth.net/core/1.0a/

这里有没有其他人处理过 OAuth 请求,可以帮助我吗?如果有任何例子,那就太好了。非常感谢你。 ~尼克

【问题讨论】:

  • 你确定它是 v 1.0 吗?那是相当过时的
  • 是的,我确定。 v1.0 与 2.0 有何不同?还是应该放在另一个线程中?
  • A) 这两个问题都不属于这里。 B) 这不是论坛,我们没有“主题”。有问题和答案,而不是讨论线程。 C) 有一个 API 可供您阅读以了解该做什么/大多数网站(如 FaceBook、ImgUR 和其他网站)都有专门针对此类事情的开发人员部分。
  • 是的,但他们都假设用户正在使用某种类型的库或包,并且已经可以使用 OAuth 进行连接。

标签: vb.net twitter oauth httprequest webrequest


【解决方案1】:

我立即想到的是您的参数没有按字母顺序排序(OAUTH 要求)。

从头开始编写 OAUTH 库是一件非常糟糕的事情,除非您有充分的理由不这样做,否则您应该使用现有的库。

我是TwitterVB 的作者,这是一个用于访问 Twitter API 的 .NET 库。该代码托管在 GitHub 上,并具有非常宽松的许可证。你会发现那里的代码可以让你更容易地实现 OAUTH。

请注意,我不再维护此库,并且 API 发生了一些影响其功能的更改。然而,OAUTH 部分都应该按原样工作。

【讨论】:

  • 你说得对,从头开始编写 OAUTH 库似乎是我不想经历的地狱。我看了一下 TwitterVB,就像你说的那样,现在有一些问题,但做得很好。我最终使用了另一个名为 TweetSharp 的库,该库目前正在维护中。
  • TweetSharp 是一个可靠的库;你选得很好。祝您项目顺利!
  • 感谢您的帮助!我一定会再次查看 TwitterVB 以帮助我了解有关 OAuth 的更多信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-14
  • 1970-01-01
相关资源
最近更新 更多