Android 2011. 8. 24. 20:00
트위터 관련 작업을 하다보니 트윗을 할 때 텍스트 외에 이미지나 위도 경도를 이용하여 위치를 

실어 보내야 하는 경우가 생겼습니다. 

우선 http://jeehun.egloos.com/4000125 이곳에 twitter4j를 연동 시키는 방법이 있습니다.

저도 이것을 토대로 작업을 하였습니다. 

우선 글씨를 트윗하는 방법은 updateStatus() 를 이용하면 되는데요 , 트위터 객체를 만들어 

Twitter twitter = factory.getInstance();
twitter.updateStatus("트윗 할 텍스트");

라고 써주시면 글씨가 올라가집니다.

이제 이미지 인데요 , 이미지도 마찬가지로 같은 방식으로 올리나 트윗픽을 이용하여 이미지를

올려야 합니다. 트윗픽은 제약이 있는데 현재 핸드폰안에 있는 이미지만 첨부가 됩니다.

다시말해 파싱받은 이미지 url은 바로 올리지 못하고 다운받아서 파일로 저장을 하고 그 패스를

받아서 올려야 합니다.

 


저는 다운 받는 매소드를 이렇게 뺐는데요, 저장 되어질 파일이름 스트링 변수와, 실질적인 이미지인 

이미지 url 을 파라미터로 받아서, sd카드에 저장시키도록 하였습니다, 저렇게하면 저 경로에 파라미터로 들어온

파일이름으로 저장이 되어집니다. 그리고 아래 onDelete 매소드를 호출하면 언제든지 저장된 이미지 파일은 

지워지구요, sd카드에 쓰려면 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

이 퍼미션 추가 해주셔야 합니다.

다시 본론으로 가서 이렇게 이미지를 받아서 그 패스를  

 

이런 식으로 is 에 넣습니다. 

path 에 들어가는 Environment.getExternalStorageDirectory().getAbsolutePath(); 이것은 현재 폰의 sd카드 경로를 

알아내는 함수입니다.


그러고 이렇게 이미지와 텍스트를 올리게 되는데 strResult 로 들어가는 upload는 트윗픽을 타고들어가 이미지를

올리고 트윗픽용 단축 url을 리턴받습니다, 마지막 줄에 보시면 트윗 할 텍스트에 한 칸 띄고 이미지 url이 

붙어 올라가는 것이죠. 
 



이렇게 텍스트 옆에 url이 붙습니다. 


이제 마지막 위치를 올리는 부분인데요, 한 줄로 끝나지만 알아내는데 엄청 고생했습니다.. 


이렇게 하면 됩니다, lat 과 lng 에 double  형으로 위도 경도를 넣어 주시면 됩니다.



이렇게 위치값이 실려 올라갑니다 , 

추가로 status = twitter.updateStatus(new StatusUpdate(Tweet).location(new GeoLocation(lat,lng))); 지도올리는 

부분에서 저 Tweet  은 String으로  트윗 할 메시지를 나타냅니다. 이미지 쪽을 보시면 트윗 할 메시지 + 이미지패스를

해서 올린걸 이용하면 저 Tweet에 트윗 할 메시지 + 이미지 패스를 넣어주시면 ,

글, 이미지, 위치 값 세개가 모두 올라가게 됩니다.

 



 보시면 우측에 이미지와 위치가 포함된 타임라인임을 알 수 있습니다 .




posted by 젊은쎄오
: