gpt4 book ai didi

c# - 使用 Twitter 登录验证用户

转载 作者:太空狗 更新时间:2023-10-29 18:25:49 27 4
gpt4 key购买 nike

我想知道有人知道使用 .NET 的 Twitter (OAuth) 登录的工作示例

我目前正在使用这个 http://www.voiceoftech.com/swhitley/?p=681

但只有当我将回调 url 设置为“oob”时它才有效,如果我设置一个真正的回调 url,我会得到“401 unauthorized”。

谢谢!

最佳答案

我为此编写了一个 OAuth 管理器,因为现有的选项太复杂了。

OAuth with Verification in .NET

该类(class)侧重于 OAuth,并专门与 Twitter 合作。这不是一个为 Twitter 的 Web API 的整个表面公开大量方法的类。它只是 OAuth。如果您想更新 Twitter 上的状态,则此类不公开“UpdateStatus”方法。我认为应用程序设计人员构建他们想要发送的 HTTP 消息是一件简单的事情。换句话说,HTTP 消息 API。但是 OAuth 的东西可能会变得有点复杂,因此需要一个 API,这就是 OAuth 类。

这是请求“请求 token ”的示例代码:

var oauth = new OAuth.Manager();
oauth["consumer_key"] = MY_APP_SPECIFIC_CONSUMER_KEY;
oauth["consumer_secret"] = MY_APP_SPECIFIC_CONSUMER_SECRET;
oauth.AcquireRequestToken(SERVICE_SPECIFIC_REQUEST_TOKEN_URL, "POST");

就是这样。在 Twitter 中,用于请求 token 的服务特定 URL 是“https://api.twitter.com/oauth/request_token”。

获得请求 token 后,您将弹出网络浏览器用户界面,用户将在其中明确批准您的应用程序以访问 Twitter。您需要执行一次,即应用程序第一次运行时。在嵌入式 WebBrowser 控件中执行此操作,代码如下:

var url = SERVICE_SPECIFIC_AUTHORIZE_URL_STUB + oauth["token"];
webBrowser1.Url = new Uri(url);

对于 Twitter,此 URL 是“https://api.twitter.com/oauth/authorize?oauth_token=”,附加了 oauth_token。

通过一些 HTML 屏幕抓取从 Web 浏览器 UI 中获取图钉。然后请求一个“访问 token ”:

oauth.AcquireAccessToken(URL_ACCESS_TOKEN,
"POST",
pin);

对于 Twitter,该 URL 是“https://api.twitter.com/oauth/access_token”。

您不需要显式处理访问 token ; OAuthManager 类为您维护它的状态。但 token 和密码在 oauth["token"]oauth["token_secret"] 中可用,以防您希望将它们写到永久存储中。要使用该访问 token 发出请求,请像这样生成 authz header :

var authzHeader = oauth.GenerateAuthzHeader(url, "POST");

...其中 url 是资源端点。要更新用户在 Twitter 上的状态,它将是“http://api.twitter.com/1/statuses/update.xml?status=Hello”。

然后将生成的字符串设置到名为Authorization 的HTTP Header 中,并向url 发出HTTP 请求。

在后续运行中,当您已经拥有访问 token 和密码时,您可以像这样实例化 OAuth.Manager:

var oauth = new OAuth.Manager();
oauth["consumer_key"] = MY_APP_SPECIFIC_CONSUMER_KEY;
oauth["consumer_secret"] = MY_APP_SPECIFIC_CONSUMER_SECRET;
oauth["token"] = your_stored_access_token;
oauth["token_secret"] = your_stored_access_secret;

然后只需生成 authz header ,并按上述方式提出您的请求。

下载DLL
查看Documentation

关于c# - 使用 Twitter 登录验证用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4819366/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com