본문 바로가기
2_ 바삭바삭 프로그래밍/C# and Visual C++

C# - 트위터 사용 예제 (Using Twitter API Example)

by 준환이형님_ 2011. 12. 29.

예전 만들었던 프로그램(TwitDJ : 정보적 약자들을 위한 트윗방송 시스템 -  http://topnanis.tistory.com/140 )을 리메이크 하고 있는데..

아쉽군요. 게으름으로 좋은 대회들을 다 놓쳐버렸으니., (요새용돈도하나도없음엉엉내가왜이걸여기다적고있니 

아쉽지만.. 이 참에 다시 하나씩 만져가며 사용하기 좋은 예제 소스를 공유하려고 합니다.

Twitterizer 라이브러리를 이용하였구요. 사용법은 어렵지 않으나 라이브러리 버젼과 프레임워크 버젼에 유의하여야 합니다. 예제에는 

(Twitterizer2.3을 사용하였습니다. 프레임워크 버젼은 4.0 이예요)

 



시작을 하면 채널번호를 물어보는데 1에서 5번까지의 미리 만들어 놓은 샘플 채널의 현재 타임라인을 부를 수 있습니다.

트윗API를 사용하기 위해서는 


1. 트윗 아이디 생성

2. 토큰값을 받는 등의 인증절차

3. Twitterizer 라이브러리를 소스에 연결

4. 소스 코딩 



순으로 조금 까다로운 절차가 필요합니다. 아래는 소스 설명입니다.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

//라이브러리를 포함시킵니다. 레퍼런스해서 Twitterizer.dll 연결해주면 됩니다.
using Twitterizer;
using System.Collections.Generic;

namespace TwitDjLight
{
    class Program
    {
        static int whoIsDj = 0;

        static OAuthTokens tokens;                  
 
        static void Main(string[] args)
        {

//메인에서의 기능은 [채널선택]과 [타임라인]을 뿌려주는 것입니다. 
 
            SelectDj();

            PrintTimeline();

            return;
        }
        

        static void PrintTimeline()
        {
               
//친구의 타임라인을 4개만 뿌려주라는 거지요. 이것은 옵션을 통해 자신의 글만 보거나, 쪽지 글을 읽는 등의 선택을 할 수 있습니다.
 
            TwitterResponse<TwitterStatusCollection> Collection = TwitterTimeline.FriendTimeline(tokens, new TimelineOptions { Count = 4 });

            TwitterStatusCollection T = Collection.ResponseObject;  
             
//흔히 예제에는 foreach문으로 되어 있는데 편의에 따라 for문으로 바꾸었습니다. 발신자명, 발신시각, 해시값, 내용 등입니다.
          
            for (int i = 0; i < T.Count; i++)
            {
                Console.WriteLine(T[i].User.Name);
                Console.WriteLine(T[i].CreatedDate);          
                Console.WriteLine("@" + T[i].User.ScreenName);
                Console.WriteLine(Convert.ToString(T[i].Id));
                Console.WriteLine(T[i].CreatedDate);
                Console.WriteLine(T[i].Text);
            }     
            
            return;
        }


        static void SelectDj()
        {
// 채널입력부 입니다. printf, scanf의 C#버젼이네요
 
            Console.Write("Input who is DJ? ");

            string str;
            str = System.Console.ReadLine();
            whoIsDj = int.Parse(str);

            Console.WriteLine("start whoIsDj : " + whoIsDj);

            tokens = new OAuthTokens();

            switch (whoIsDj)
            {
//미리 만들어 놓은 인증키입니다. 원하시는 내용의 타임라인이 있으시다면 해당 아이디의 인증을 받아 아래에 덮어써주세요
 
                // 방송언론
                case 1:
                    tokens.AccessToken = "355431986-c4cibrUfhqLB4FixLgdX4OqO47glElUuPdY9faGz";
                    tokens.AccessTokenSecret = "hD2ykJpUf7kYQ9fBWjS6Oi6ZEPyDhrxNsTiql7Vzsh8";
                    tokens.ConsumerKey = "qZLf2Yi7pw3neUquwjrg";
                    tokens.ConsumerSecret = "vVIWxy5A5NhCrjT00tzdYFe21KIe3TAsYiWnjNito";
                    
                    break;

                // 경제
                case 2:
                    tokens.AccessToken = "355441089-6ukgY8pk2FeJOkvpLuy5Miy25sbyI54ApNtfXAta";
                    tokens.AccessTokenSecret = "ckNs4rqxQD0Ea0QVmXIHpqZmz4WyXCD3BxeRjNeqEG4";
                    tokens.ConsumerKey = "Iopjaxuu77CtTu9oRlmCsQ";
                    tokens.ConsumerSecret = "jFzzxHtOnZYQlCWgeF1OB3Ddzfoev9d6oeJBqaYmf8";

                    break;

                // 복지의학
                case 3:
                    tokens.AccessToken = "355449483-NsvsaGdQ8X4AYlzLOjKHhwF7zQlK8usvJOW3SZXZ";
                    tokens.AccessTokenSecret = "zJGs61E9TbLeBFyED7RpdCbO8jPFN2WSb0t4X11yT8g";
                    tokens.ConsumerKey = "Glh64NT9P0DBpiEryYhg";
                    tokens.ConsumerSecret = "gGx3fjd3DLvcrG92aQ9g696JJV4ONemwUQIMZ5l6M";

                    break;

                // 정치
                case 4:
                    tokens.AccessToken = "356327076-dsCfMDar6qzcW4R76j0i13m3MxQCackJJ2IqKB8q";
                    tokens.AccessTokenSecret = "9NSLjYP7VXb5pPijnx2ZoI3tbzGGu7AV5drli5ZLQQ";
                    tokens.ConsumerKey = "x2eCHQbxZyy1ETJ1fSQuag";
                    tokens.ConsumerSecret = "IEgTkmpu2DPhfzRlcSkTKs2fhGjBNChOvhuKzZDmR8";

                    break;

            // 연예오락
                case 5:                  
                    tokens.AccessToken = "356333815-I6nsBxtG0vswjxiTBWjzJoTvuCbxIR2HV0JfE1R6";
                    tokens.AccessTokenSecret = "3jVCCAaodyBJTH94lQXidD6bVsPCxZ81OZG7MNcg4";
                    tokens.ConsumerKey = "NKFHIMwnBulTQqSVCrgig";
                    tokens.ConsumerSecret = "aMRFvptID3WWiMm23JdPxhGW7aQ0jk2OlgUi0n88PQ";

                    break;
             
                default:     return;   break;
            }
        }        
    }
}


아래에 소스를 첨부합니다~