如何从Android上传Twitter中的照片

时间:2011-04-28 05:44:31

标签: android

我尝试在Twitter上传照片,但状态是发送而不是照片。有人可以建议一些帮助吗?

5 个答案:

答案 0 :(得分:2)

您需要将图片上传到像twitpic这样的图片服务,该图片服务会返回一个网址,然后您将其放入状态更新中。

那里有像Twitter4J这样的库,可以帮助你完成这项任务。

请查看Zwitscher如何使用它:code to upload

答案 1 :(得分:2)

在此链接http://code.google.com/p/twitpic4j/

中使用api

答案 2 :(得分:2)

试试这段代码..

    final SharedPreferences prefs = PreferenceManager
                        .getDefaultSharedPreferences(this);
                String token = prefs.getString(OAuth.OAUTH_TOKEN, "") != null ? prefs
                        .getString(OAuth.OAUTH_TOKEN, "") : "";
                String secret = prefs.getString(OAuth.OAUTH_TOKEN_SECRET, "") != null ? prefs
                        .getString(OAuth.OAUTH_TOKEN_SECRET, "") : "";


                    if (token != null && !token.trim().equals("") && secret != null
                        && !secret.trim().equals("")) {
                    AccessToken a = new AccessToken(token, secret);
                    Twitter twitter = new TwitterFactory().getInstance();
                    twitter.setOAuthConsumer(Constants.CONSUMER_KEY,
                            Constants.CONSUMER_SECRET);
                    twitter.setOAuthAccessToken(a);

     Configuration conf = new ConfigurationBuilder()                 
                        .setOAuthConsumerKey(Constants.CONSUMER_KEY) 
                        .setOAuthConsumerSecret(Constants.CONSUMER_SECRET) 
                        .setOAuthAccessToken(a.getToken()) 
                        .setOAuthAccessTokenSecret(a.getTokenSecret()) 
                        .build(); 

     OAuthAuthorization auth = new OAuthAuthorization (conf, conf.getOAuthConsumerKey (), conf.getOAuthConsumerSecret (), new AccessToken (conf.getOAuthAccessToken (), AuthAccessTokenSecret ()));

       ImageUpload upload = ImageUpload.getTwitpicUploader ("fa6707f43c41faab003dc134348acabd",auth);

        url = upload.upload(new File(path));


        twitter.updateStatus(url);


///Add twitter4j-core-2.1.11jar to libs

答案 3 :(得分:1)

Twitter4j 3.0.3已更新其ImageUpload课程。 ImageUpload.getTwitpicUploader方法现已弃用;它只有ImageUpload.upload方法。此外,您必须在项目构建路径中添加这两个.jar:

  • twitter4j核-3.0.3.jar
  • twitter4j介质支撑-3.0.3.jar

您可以在http://twitter4j.org/oldjavadocs/3.0.3/index.html

获取更多信息

答案 4 :(得分:1)

首先,你需要在twitter上创建一个应用程序

这是在twitter上发布消息的代码

 ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
        configurationBuilder.setOAuthConsumerKey(context.getResources().getString(R.string.twitter_consumer_key));
        configurationBuilder.setOAuthConsumerSecret(context.getResources().getString(R.string.twitter_consumer_secret));
        configurationBuilder.setOAuthAccessToken(LoginActivity.getAccessToken((context)));
        configurationBuilder.setOAuthAccessTokenSecret(LoginActivity.getAccessTokenSecret(context));
        Configuration configuration = configurationBuilder.build();
        final Twitter twitter = new TwitterFactory(configuration).getInstance();

        new Thread(new Runnable() {

                private double x;

                @Override
                public void run() {
                        boolean success = true;
                        try {
                                x = Math.random();
                                twitter.updateStatus(message +" "+x);
                        } catch (TwitterException e) {
                                e.printStackTrace();
                                success = false;
                        }

                        final boolean finalSuccess = success;

                        callingActivity.runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                        postResponse.onFinsihed(finalSuccess);
                                }
                        });

                }
        }).start(); 

查看此tutorial了解详情。