我昨天向Twitter4j介绍了自己,现在正在测试我即将推出的程序的功能。正如标题所示,我试图将图像上传到推特,没有任何运气。这是我的代码:
import static java.awt.Toolkit.getDefaultToolkit;
import static javax.swing.JOptionPane.ERROR_MESSAGE;
import static javax.swing.JOptionPane.showMessageDialog;
import java.awt.Image;
import java.io.File;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.examples.tweets.UploadMultipleImages;
import twitter4j.media.ImageUpload;
import twitter4j.media.ImageUploadFactory;
public final class UpdateStatus {
static File file = new File("/images/Done.jpg");
public static void main(String[] args) {
for(int i=0;i<2;i++){
Twitter twitter = new TwitterFactory().getInstance();
Status status=null;
try {
ImageUpload.upload(file,"22");
} catch (TwitterException e) {
System.err.println("Shit...");
System.exit(3);
}
}
System.out.println("Done");
}
}
我要上传的图片是Done.jpg,位于包中的文件夹中。我已经将这种方法用于其他程序中的图像,所以我很确定它的工作原理。但是,在运行代码之前,这给了我一条错误消息,说“无法对ImageUpload类型的非静态方法上传(File,String)进行静态引用”。任何可以帮助我的想法? :d
答案 0 :(得分:6)
在测试代码之前,您需要确保关注 -
获得所需的访问权限后,您需要使用这些令牌实例化Twitter实例。然后,可以使用此实例执行必要的操作。请参阅下面的示例代码以上传图片 -
ConfigurationBuilder twitterConfigBuilder = new ConfigurationBuilder();
twitterConfigBuilder.setDebugEnabled(true);
twitterConfigBuilder.setOAuthConsumerKey("consumerkey");
twitterConfigBuilder.setOAuthConsumerSecret("consumersecret");
twitterConfigBuilder.setOAuthAccessToken("accesstoken");
twitterConfigBuilder.setOAuthAccessTokenSecret("accesstokensecret");
Twitter twitter = new TwitterFactory(twitterConfigBuilder.build()).getInstance();
String statusMessage = "Watch out this interesting offer I came across today";
File file = new File("/images/Done.jpg");
StatusUpdate status = new StatusUpdate(message);
status.setMedia(file); // set the image to be uploaded here.
twitter.updateStatus(status);
希望这有帮助。
答案 1 :(得分:0)
ImageUpload.upload
不是静态方法,而是实例方法。
您需要创建ImageUpload的实例,并从实例中调用该方法。
检查documentation of ImageUpload,它是一个界面。因此,您需要实例化一个实现ImageUpload的类。