【问题标题】:Android twitter tweet with image [duplicate]带有图像的Android twitter推文[重复]
【发布时间】:2012-05-17 11:44:20
【问题描述】:

可能重复:
Can we post image on twitter using twitter API in Android?

我在一个 android 应用程序中工作,我想在 Twitter 上发布一条消息和一张图片。我只能通过代码向 Twitter 发送推文:

String token = prefs.getString(OAuth.OAUTH_TOKEN, "");
String secret = prefs.getString(OAuth.OAUTH_TOKEN_SECRET, "");

AccessToken a = new AccessToken(token, secret);
Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(Constants.CONSUMER_KEY,
        Constants.CONSUMER_SECRET);
twitter.setOAuthAccessToken(a);
try {

**twitter.updateStatus("New tweet");**
        twitter.//Which property of twitter should I use to tweet an image and  //message
} catch (TwitterException e) {
    // TODO Auto-generated catch block
    Log.e("Errorssssssssssssss", e.toString());
}

如何也包含图片?

【问题讨论】:

标签: android


【解决方案1】:

参考http://www.londatiga.net/it/how-to-post-twitter-status-from-android/,使用twitter4j库

public void uploadPic(File file, String message) throws Exception  {
    try{
    StatusUpdate status = new StatusUpdate(message);
    status.setMedia(file);
    mTwitter.updateStatus(status);}
    catch(TwitterException e){
        Log.d("TAG", "Pic Upload error" + e.getErrorMessage());
        throw e;
    }
}

其中 mTwitter 是 Twitter 类的一个实例

确保您使用的是最新版本的 twitter4j-core jar 文件。

【讨论】:

  • status.setMedia(file);你好。我无法获得名为 setMedia 的属性。请帮助我
  • 使用 twitter4j-core-2.2.5.jar,可能你使用的是旧库
  • 嗨 Gaurav Vashisth,我在 jar 文件 twitter4j-core-2.2.5.jar 中获得了 setMedia 属性,但出现错误:找不到类 'twitter4j.auth.AccessToken',从方法 android.twitter.TwitterUtils 引用。这是我用来验证 AccessToken 的代码 accesstoken = new AccessToken(token, secret); Twitter twitter = new TwitterFactory().getInstance(); twitter.setOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET); twitter.setOAuthAccessToken(accesstoken);
  • 嗨 Gaurav Vashisth,我在 jar 文件 twitter4j-core-2.2.5.jar 中获得了 setMedia 属性,但现在我收到一个错误:AndroidRuntime(694): Caused by: java.lang .IllegalArgumentException:发布的同一代码中的访问令牌格式无效。请帮帮我
【解决方案2】:

你可以试试 Twitter4j 库附带的示例。以下代码将帮助你

public final class TwitpicImageUpload {
    /**
     * Usage: java twitter4j.examples.media.TwitpicImageUpload [API key] [message]
     *
     * @param args message
     */
    public static void main(String[] args) {
        if (args.length < 2) {
            System.out.println("Usage: java twitter4j.examples.media.TwitpicImageUpload [API key] [image file path] [message]");
            System.exit(-1);
        }
        try {
            Configuration conf = new ConfigurationBuilder().setMediaProviderAPIKey(args[0]).build();
            ImageUpload upload = new ImageUploadFactory(conf).getInstance(MediaProvider.TWITPIC);
            String url;
            if (args.length >= 3) {
                url = upload.upload(new File(args[1]), args[2]);
            } else {
                url = upload.upload(new File(args[1]));
            }
            System.out.println("Successfully uploaded image to Twitpic at " + url);
            System.exit(0);
        } catch (TwitterException te) {
            te.printStackTrace();
            System.out.println("Failed to upload the image: " + te.getMessage());
            System.exit(-1);
        }
    }
}

下载 Twitter4j 库在此处查找更多示例。

【讨论】:

    猜你喜欢
    • 2011-11-06
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 2011-02-04
    • 2013-12-05
    • 1970-01-01
    相关资源
    最近更新 更多