Sta*_*wer 8 .net c# asp.net twitter-oauth
我想知道有人知道使用Twitter(OAuth)for .NET登录的工作样本
我正在使用这个http://www.voiceoftech.com/swhitley/?p=681
但它只有在我将回调网址设置为"oob"时才有效,如果我设置了一个真正的回调网址,我会得到"401未授权".
谢谢!
我为此写了一个OAuth经理,因为现有的选项太复杂了.
该课程侧重于OAuth,并专门与Twitter合作.这不是一个为Twitter的Web API的整个表面公开大量方法的类.这只是OAuth.如果要在Twitter上更新状态,则此类不公开"UpdateStatus"方法.我认为应用程序设计人员构建他们想要发送的HTTP消息是一件简单的事情.换句话说,HTTP消息是 API.但OAuth的东西可能会有点复杂,所以这需要一个API,这就是OAuth类.
以下是请求"请求令牌"的示例代码:
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");
Run Code Online (Sandbox Code Playgroud)
就是这样.在Twitter中,用于请求令牌的特定于服务的URL是" https://api.twitter.com/oauth/request_token ".
获得请求令牌后,您将弹出Web浏览器UI,用户将明确授予您的应用批准权限,以访问Twitter.您需要在应用程序第一次运行时执行此操作一次.在嵌入式WebBrowser控件中执行此操作,代码如下:
var url = SERVICE_SPECIFIC_AUTHORIZE_URL_STUB + oauth["token"];
webBrowser1.Url = new Uri(url);
Run Code Online (Sandbox Code Playgroud)
对于Twitter,其URL为" https://api.twitter.com/oauth/authorize?oauth_token= ",并附加oauth_token.
通过一些HTML屏幕抓取从Web浏览器UI抓取引脚.然后请求"访问令牌":
oauth.AcquireAccessToken(URL_ACCESS_TOKEN,
"POST",
pin);
Run Code Online (Sandbox Code Playgroud)
对于Twitter,该URL是" https://api.twitter.com/oauth/access_token ".
您不需要显式处理访问令牌; OAuthManager类为您维护状态.但令牌和秘密是可用的oauth["token"]和oauth["token_secret"],如果你想将其注销,以永久存储.要使用该访问令牌发出请求,请生成如下所示的authz标头:
var authzHeader = oauth.GenerateAuthzHeader(url, "POST");
Run Code Online (Sandbox Code Playgroud)
... url资源端点在哪里.要在Twitter上更新用户的状态,它将是" http://api.twitter.com/1/statuses/update.xml?status=Hello ".
然后将结果字符串设置为名为Authorization的HTTP Header ,并将HTTP请求发送到url.
在后续运行中,当您已经拥有访问令牌和机密时,可以像这样实例化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;
Run Code Online (Sandbox Code Playgroud)
然后只需生成authz标头,并按上述方式发出请求.
已经通过http://www.voiceoftech.com/swhitley/?p=681解决了我的问题
我将我的应用程序保存为“浏览器”,但由于我没有指定回调网址,因此在保存时将其转换为“客户端”应用程序。
| 归档时间: |
|
| 查看次数: |
15763 次 |
| 最近记录: |