关于在不使用任何第三方库的情况下在网络上登录Twitter的指南



我找到了一种使用 github twitter4j 实现 Twitter 登录的方法,但我想在不使用任何第三方库的情况下实现它。有了推特文档,我无法理解我应该为它做些什么。从哪里可以得到oauth_nonce,oauth_timestamp&oauth_signature的价值?请向我推荐一种在网络中实现推特登录的好方法。

请向我推荐一种在网络中实现推特登录的好方法。

Twitter开发者文档是这样说的:

"大多数开发人员不需要处理OAuth的细节,因为Twitter客户端库已经实现了该协议。强烈建议使用这些库之一。"

如果您选择忽略该建议,则同一页面包含指向其他页面的链接,这些页面解释了 OAuth,解释了获取令牌的各种方法,并解释了如何为您的请求提供身份验证详细信息。

我自己是第三方库的开发人员,我肯定会建议使用它们。Twitter身份验证需要考虑多个问题。

无论如何,这是给你的答案。

// oauth_nonce
var oauth_nonce = new Random().Next(123400, 9999999).ToString(CultureInfo.InvariantCulture);
// oauth_timestamp
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
var oauthTimestamp = Convert.ToInt64(ts.TotalSeconds).ToString(CultureInfo.InvariantCulture);

签名有点复杂。您需要提取查询的所有参数。按名称对它们进行排序,将它们全部附加到用"&"分隔的字符串中(我们称之为URL_PARAMETERS)。然后创建一个字符串,如下所示{HTTP_METHOD}&{BASE_URL}&{URL_PARAMETERS}

现在,您只需使用oauth_secret_key(来自Twitter应用程序)计算先前值的哈希值。

而不是你可以简单地做oauth_signature = Http.UrlEncode(Convert.ToBase64(<HASH>)).

也不要忘记

var oauth_signature_method = "HMAC-SHA1";

相关内容

最新更新