上传图片twitter4j

0 java twitter twitter4j

我昨天向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");

}
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试上传的图片是Done.jpg,并且位于包中的文件夹中.我已经将这种方法用于其他程序中的图像,所以我很确定它的工作原理.但是,在运行代码之前,这给了我一条错误消息,说"无法对ImageUpload类型的非静态方法上传(File,String)进行静态引用".任何可以帮助我的想法?:d

mba*_*axi 6

在测试代​​码之前,您需要确保遵循以下规则 -

  1. https://apps.twitter.com/注册您的应用程序并获取Oauth令牌,以便能够将您的应用程序连接到Twitter并执行所需的操作.您将获得consumerKey,consumerAccessToken,accessKey和accessToken.
  2. 如果您要发布更新,请确保您将应用程序权限配置为具有读写权限,deafult访问权限为只读.

拥有所需的访问令牌后,您需要使用这些令牌实例化一个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);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.