글쓴이 보관물: xguru

Excel 과 Twitter 매쉬업 – 엑셀로 100명이상에게 트위터 DM 동시에 보내기

트위터를 사용하다보면 동시에 여러명에게 DM을 보내야할 일이 가끔 생깁니다. 모임을 진행한다던지, 몇몇 지인들에게만 중요정보를 알린다던지 할때 말이죠. 공개트윗으로 날리긴 곤란하고, DM 으로 각각보내자니 힘들고.. 그래서 예전에 TweetGuru 의 MultiDM 이라는 서비스를 만들었는데요. 서버의 제약 문제 때문에 동시에 12명까지밖에 보낼수가 없게 되어있습니다. 그리고 계정정보들을 따로 저장해놨다가 하는등의 작업들이 필요했는데요. 많이들 쓰시는 Microsoft Excel 을 이용해서 DM 을 여러명에게 편하게 보낼수 있는 매쉬업을 공개합니다.

Excel 과 Twitter 매쉬업하기

지난번 파워포인트와 트위터 매쉬업하기 에서 사용했던 소스를 거의 그대로 활용합니다. VBA 코드로 되어있습니다. 아래와 같은 화면입니다.

Excel to Twitter Mashup

너무 간단해서 보시면 사용법은 다 아실듯 합니다. ID 칸에 보낼사람 트윗ID를 @ 없이 적고, 메시지를 적으면 됩니다. 메시지가 빈칸이면 위칸것을 재활용합니다. 캡쳐에 있는 대로라면 @clien_net 과 @tweet_id8 까지는 “즐거운 설날되세요!” 를 받고, 나머지 @tweet_id9-16 은 “즐거운 설날되세요! 새해 복많이 받으세요!” 를 받게 됩니다. 버튼을 누르면 작은창이 떠서 트위터 ID 와 암호를 물어봅니다.

주의하실 점은 화면에 있는 대로 트위터 자체의 제한인 일일 DM 250 개 제한과 시간당 API 150번 호출제한을 염두에 두세요.
이 파일로 150명에게 DM 보내고 나면 트위터 클라이언트가 바로 리밋걸리게 됩니다. 한시간동안 웹으로 밖에 못쓰시게 되는거죠.

그리고 정말 중요! 트위터의 정책상 같은 DM 을 반복해서 보내면 스팸으로 인식되어 계정사용에 문제가 생길수도 있습니다. 조심해서 사용하세요.
혹시 이 파일로 인해 생기는 문제는 제가 책임지지 않습니다.

아래는 이 엑셀+트위터 매쉬업의 코드입니다.

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Function DM(touser, tweetmsg, uid, pwd)
     Dim objHTTP As Object
     Set objHTTP = CreateObject("Microsoft.XMLHTTP")
          objHTTP.Open "POST", "http://twitter.com/direct_messages/new.xml", False, uid, pwd
          objHTTP.send "user=" & touser & "&text=" & tweetmsg
          DM = objHTTP.responseText
     Set objHTTP = Nothing
End Function
Function getStringBetween(str, sstart, send)
    PosStart = InStr(str, sstart)
    PosEnd = InStr(str, send)
    If (PosStart > 0) And (PosEnd > 0) Then
        getStringBetween = Mid(str, PosStart + Len(sstart), PosEnd - PosStart - Len(sstart))
    Else
        getStringBetween = ""
    End If
End Function
Function Send_DM()
    Load frmLogin
    frmLogin.Show
    strUID = frmLogin.txtUID
    strPWD = frmLogin.txtPWD
    Unload frmLogin
    If Len(strUID) = 0 Or Len(strPWD) = 0 Then Exit Function
    ' Twitter Limits 250 DM per day. You can't exceed this
    Application.Cursor = xlWait
    For i = 2 To 151
        TweetID = Cells(i, 1)
        If Len(Cells(i, 2)) > 0 Then
            tweetmsg = Cells(i, 2)
        End If
        If Len(TweetID) > 0 Then
            res = DM(TweetID, tweetmsg, strUID, strPWD)
            Cells(i, 5) = res
            If (Len(getStringBetween(res, "id", "/id")) > 0) Then
                Cells(i, 3) = "성공"
            Else
                Cells(i, 3) = "실패"
            End If
        Else
            Exit For
        End If
        ' 혹시 몰라서 한건의 DM당 1초씩 딜레이를 뒀습니다. 트위터 서버측에 부하를 줄이기 위함입니다.
        ' 시간이 문제가 안되시는분은 5000 정도로 해서 5초 딜레이를 주시면 전혀 무리없을듯 합니다.
        Sleep 1000
    Next i
    Application.Cursor = xlDefault
End Function

가지고 계신 트위터 사용자들 주소록이 있다면, 간단히 ID 부분에만 복사하셔서 쉽게 메시지 보내시면 됩니다.
주의! 다운 받아서 오픈한후 보안경고 창에서 매크로 사용토록 확인해주셔야 기능이 동작됩니다.

▶ 엑셀파일 다운로드 : Excel + Twitter Multi DM 엑셀 다운받기 – 제 Dropbox 입니다.

( 혹시 Dropbox 사용 안해보신분들은 꼭 만들어 두세요 윈도우/맥/아이폰 모두 연동되는 쓰기편한 웹하드로 2 Giga 까지 무료입니다. )

어떻게 사용하시느냐에 따라 좋은 전달도구가 될수도, 나쁜 광고용 도구로 전락될수도 있습니다.
국내 트위터 사용자분들을 믿습니다. 이걸 광고 및 나쁜용도로 사용하지 말아주세요.

엉뚱한 개발자 구루였습니다.

구글 버즈와 트위터 연동하기 : How to integrate Google Buzz to Twitter

오늘 새벽에 공개되어 트위터와 온통 외국 사이트들이 시끌벅적한 Google Buzz ( 구글 버즈 ) 한국명은 구글 와글? 인듯합니다.

구글 Buzz에 대한 상세소개는 윤석찬님 의 포스팅 Google Buzz, 지메일 기반 소셜 서비스 발표! 글을 참고하세요.

아직은 초창기라 정신없기는 한데.. 그냥 제가 트위터가지고 놀기 좋아하는터라 구글 Buzz 의 내용을 Twitter 에서도 볼수 있게 만들어 봅니다.

* 추가 : 이제 제 지메일 계정에도 Buzz 가 활성화 되어 가보니, Buzz -> Twitter 보다는 Twitter -> Buzz 의 구조를 염두에 두고 만든듯 합니다. 어떤걸 최후 종착역으로 설정할지는 사용자마음일듯합니다. 아래는 트위터를 데이타의 최종단으로 만들때 사용하는 방법입니다. 아래 방법을 사용하시면서 Buzz 의 Twitter 가져오기 기능을 활성하면 무한으로 반복되게 됩니다. 조심하세요 ^^; 둘중에 하나만 선택하셔야 합니다.

자신의 구글 Buzz 의 Feed 주소는 아래와 같습니다.

http://buzz.googleapis.com/feeds/{user}/public/posted

위에서 {user} 부분에 자기 구글아이디 또는 Profile 의 이름을 적어서 자신의 Buzz Feed가 맞는지 확인합니다.

이 주소를 구글 FeedBurner ( http://feedburner.google.com/ ) 에 가서 Feed 로 등록합니다.
Friendfeed 나 TwitterFeed 같은걸 이용해도 되는데.. 구글 FeedBurner 를 이용하면 트윗에 via Google 이라고 나와서.. 왠지 더 정품? 같아 보입니다.

Publicize -> Socialize 로 가서 아래와 같이 설정하면 끝!

Google Buzz to Twitter

구글 Buzz 의 Feed 는 Body 에 중요내용이 있으므로 Body Only 를 선택하는걸 잊지마세요 🙂

이렇게 하고난후 Buzz 에 글을 남기면 아래와 같이 트윗됩니다.

Google Buzz on Twitter

Buzz는 11시 25분에 남긴 거였는데 , 12시 다되서야 트윗되었네요.
좀 빠르게 남기시려면 피드버너에서 Ping 해주시면 됩니다. 자신의 피드버너의 피드 주소를 입력하시고 Ping 하시면 즉시 등록됩니다.
예로 만든 제 구글 버즈의 피드버너 피드주소는 http://feeds.feedburner.com/guru_buzz 입니다.