如何发送一个图像作为直接消息与twitter在android?

c7rzv4ha  于 2022-12-25  发布在  Android
关注(0)|答案(4)|浏览(127)

我想用twitter4j发送一张带文字的图片给一个关注者。我可以直接发送这样的信息:

twitter.sendDirectMessage(twitterID, message);

现在,我还不知道如何将图片作为直接信息发送出去。我是这样发推文的,它很有效:

StatusUpdate status = new StatusUpdate(message);
            status.setMedia(pathOfTheFileToSend);
            twitter.updateStatus(status);

那么有没有可能用twitter4j库在twitter上直接发送图片呢?
先谢了。

q7solyqu

q7solyqu1#

首先,值得注意的是Twitter4j的作用,它提供了一个很好的抽象和绑定到Twitter的REST API的Java。
如果你看看Twitter的Direct Message Endpoint,你会发现它没有目前提供一种在发送直接消息时“附加”图像的方法。
这一点已在Twitter Developers forums中得到确认,之前:
我们还没有宣布计划为直接消息提供媒体上传端点。

cbwuti44

cbwuti442#

我已经找到了一种方法,可以将图像附加到我的java项目中适用的DM,使用以下代码:

...
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
//Get the User ID from the Screen Name
User user = twitter.showUser("screenName"); //@Hec_KuFlow for example
long userId = user.getId();
//The message to send
String message = "Hi! this is the message";
//Upload the file and get the ID
File imageFile = new File("C:\\demo\\picture.png");
long[] mediaIds = new long[1];
UploadedMedia media = twitter.uploadMedia(imageFile);
mediaIds[0] = media.getMediaId();

DirectMessage directMessage = twitter.directMessages().sendDirectMessage(userId, message, mediaIds[0]) throws TwitterException;

...

xlpyo6sf

xlpyo6sf3#

使用以下代码发送带有文本的图像

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();

Twitter twitter = new TwitterFactory(configuration).getInstance();

StatusUpdate status = new StatusUpdate(message);

status.setMedia(file); // set the image to be uploaded here.

twitter.updateStatus(status);

有关详细说明,请查看此tutorial

68bkxrlz

68bkxrlz4#

public void tweetPicture(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 Uploading error" + e.getErrorMessage());
        throw e;
    }

}

或者您可以refer this

相关问题