안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요!
트윗픽에 사진을 올릴려고 하는데 잘 안되서요.. 혹시 다른분은 되시는지 궁금합니다.
어떤 분 블로그를 참고해서 twitter4j를 이용해서 oAuth인증을 한 후에 , updateStatus는 잘 됩니다.
근데 twitter4j에 있는 이미지 업로드를 이용해서 , 업로드를 해보려고 하는데 , 제가 뭔가 빼먹은건지 원래 안되는건지 ...
분명히 코드만 보면 올라가줘야 할 것 같은데 계속 Exception이 발생하네요 ~~
딱 업로드 할 때 에러가 발생하네요 ~
String strResult = uploader.upload(picture , "abcdesdfdsfs");
twitter4j 에서 제공하고 있는 TweetPhotoOAuthUploader.getTwitpicUploader 이거 원래 잘 되는건가요 ??
저만 안되고 있는건지 ...
혹시 다른 방법이 있으면 꼭 좀 부탁드릴게요~~
감사합니다.
private void getRequestToken()
{
twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(consumerKey, consumerSecret);
rqToken = null;
try {
rqToken = twitter.getOAuthRequestToken();
WebView webview = (WebView)findViewById(R.id.webView);
String strUrl = rqToken.getAuthorizationURL();
Toast.makeText(this, strUrl, Toast.LENGTH_LONG).show();
webview.loadUrl(strUrl);
} catch (TwitterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, "에러", Toast.LENGTH_LONG).show();
}
}
@SuppressWarnings("deprecation")
private void getAccessToken()
{
EditText et = (EditText)findViewById(R.id.EditText01);
String pin = et.getText().toString();
acToken = null;
try
{
acToken = twitter.getOAuthAccessToken(rqToken ,pin );
twitter.setOAuthAccessToken(acToken.getToken(), acToken.getTokenSecret());
//twitter.updateStatus("go go go go go333!!");
File picture = new File("/data/data/com.ttt.ttt/1.png");
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.setOAuthConsumerKey(consumerKey);
builder.setOAuthConsumerSecret(consumerSecret);
Configuration config = builder.build();
OAuthAuthorization oauth = new OAuthAuthorization(config, consumerKey, consumerSecret, acToken);
ImageUpload uploader = TweetPhotoOAuthUploader.getTwitpicUploader(twitpicApiKey, oauth);
String strResult = uploader.upload(picture , "abcdesdfdsfs");
Toast.makeText(this, "이미지 업로드 성공 :" + strResult, Toast.LENGTH_LONG).show();
}catch (TwitterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, "에러 : " + e.toString(), Toast.LENGTH_LONG).show();
}
Toast.makeText(this, "update", Toast.LENGTH_LONG).show();
}
ㅅㄷㄴㅅ
아래 코드를 참고하시면 될 듯합니다;..
소스 넣는 확장 컴포넌트가 이상하네요 ㅠㅠ
크롬에서도 한번 열리면 메뉴창이 닫히지 않아서 글 쓰는 공간을 가리네요 ㅠㅠ
IE8 에서도 그렇고;; Text Area Resizer 도 안되고요 ;;
File image = new File(imagePath);
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setOAuthConsumerKey(consumerKey); // twitter에 어플 등록 후 받은 consumer key
cb.setOAuthConsumerSecret(consumerSecret); // twitter에 어플 등록 후 받은 consumer secret
Log.v(TAG, "configuration builder set consumerkey and secret done.");
cb.setOAuthAccessToken(tok); // tok 은 AccessToken 에서 getToken() 을 이용해 빼낸 String 입니다;
cb.setOAuthAccessTokenSecret(secTok); // secTok 는 AccessToken 에서 getTokenSecret() 을 이용해 빼낸 String 입니다.;
Log.v(TAG, "configuration builder set access token and secret done.");
cb.setMediaProvider(MediaProvider.TWITPIC.toString());
cb.setMediaProviderAPIKey(twitPicApiKey); // 트윗픽에서 자신의 앱을 등록하고 받은 api key 입니다.
Log.v(TAG, "configuration builder set media provider and api-key done.");
Configuration config = cb.build();
Log.v(TAG, "config-build done.");
ImageUpload iu = new ImageUploaderFactory(config).getInstance();
Log.v(TAG, "creation-ImageUpload- done.");
try {
twitPicUrl = iu.upload(image);
Log.v(TAG, "upload image URL: " + twitPicUrl);
} catch (TwitterException e) {
// TODO Auto-generated catch block
Log.v(TAG, "upload image function error: " + e.toString());
}