0. 소스 및 참고
tweetSharp : http://tweetsharp.com/
C# Library : http://apiwiki.twitter.com/Libraries#C/NET
OAuth .net : http://www.voiceoftech.com/swhitley/?p=681
OAuth : http://oauth.net/
1. 목적
C#과 ASP.NET을 이용한 웹어플리케이션을 트위터에 등록하기

2. 오픈소스 선정
웹어플리케이션을 트위터에 등록할수 있게 해주는,
오픈소스를 찾기위해 트위터에서 제공하는 오픈소스를 모두 사용해 보았다.
그렇듯. 후잡한 것부터 훌륭한것까지 있는데,
정작 필요한기능을 만족하면서 훌륭한 오픈소스를 찾기는 쉽지 않았다.
그와중에 쓸만한 물건이라 판단된 TweetSharp 을 사용하기로 했다.
LINQ형태, 유들이 소감=편한다.
3. 구현
tweetSharp 개발자 사이트에서 샘플코드를 구할 수 있다.
이를,
토큰 등록페이지,인증확인페이지,메세지 업데이트 페이지에 사용되는
기능을 가지는 클래스로 구성해 보았다.
1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Web;
5: using Dimebrain.TweetSharp.Core.OAuth;
6: using Dimebrain.TweetSharp.Extensions;
7: using Dimebrain.TweetSharp.Fluent;
8: using Dimebrain.TweetSharp.Model;
9: using Dimebrain.TweetSharp;
10: using System.Configuration;
11: 12: public class Twitter {
13: 14: string consumerKey;
15: string consumerSecret;
16: 17: public Twitter(string consumerKey , string consumerSecret) {
18: this.consumerKey = consumerKey;
19: this.consumerSecret = consumerSecret;
20: } 21: 22: public bool Update(string msg , string token , string tokenSecret) {
23: 24: var result = FluentTwitter.CreateRequest()25: .AuthenticateWith(this.consumerKey, this.consumerSecret, token , tokenSecret)
26: .Statuses().Update(msg).Request(); 27: 28: return (string.IsNullOrEmpty(result.AsError().ErrorMessage))
29: ? true
30: : false;
31: } 32: 33: public void Authenticate(HttpContext context) {
34: var authorizeUrl = FluentTwitter.CreateRequest() 35: .Authentication36: .GetAuthorizationUrl(this.GetRequestToken().Token);
37: 38: context.Response.Redirect(authorizeUrl); 39: } 40: 41: public bool IsValid(string token, string tokenSecret) {
42: var query = FluentTwitter.CreateRequest()43: .AuthenticateWith(this.consumerKey, this.consumerSecret, token , tokenSecret)
44: .Account().VerifyCredentials().AsXml(); 45: 46: var response = query.Request();47: return (string.IsNullOrEmpty(response.AsError().ErrorMessage))? true : false;
48: } 49: 50: public OAuthToken GetAccessToken(string requestToken) {
51: var accessToken = FluentTwitter.CreateRequest()52: .Authentication.GetAccessToken(this.consumerKey, this.consumerSecret, requestToken);
53: 54: var response = accessToken.Request(); 55: 56: var result = response.AsToken();57: if (result == null) {
58: 59: var error = response.AsError();60: if (error != null) {
61: throw new Exception(error.ErrorMessage);
62: } 63: }64: return result;
65: } 66: 67: OAuthToken GetRequestToken() { 68: var requestToken = FluentTwitter.CreateRequest()69: .Authentication.GetRequestToken(this.consumerKey, this.consumerSecret);
70: 71: var response = requestToken.Request(); 72: 73: var result = response.AsToken();74: if (result == null) {
75: 76: var error = response.AsError();77: if (error != null) {
78: throw new Exception(error.ErrorMessage);
79: } 80: }81: return result;
82: } 83: 84: 85: }
4. consumer Key & Secret 발급
트위터 로그인후, http://twitter.com/apps 페이지로 가서 정보를 입력하면, key와 secret 을
발급받을 수 있다.
댓글 없음:
댓글 쓰기