如何以编程方式在twitpic / twitter上传视频?

时间:2012-09-05 12:51:52

标签: java android twitter twitter4j

我是Android新手。 我正在推特上传图像/视频。我为此目的使用了twitpic。 我首先将图像发送到twitpic,然后使用推文的url更新twitter中的状态。 根据我在图库中的选择,图片已成功加载。

但我仍然坚持在Twitter上传视频。因为上传视频可以选择twitpic或twitvid。但是没有给出这种类型的代码或sdk。很困惑,如何做到这一点,必须使用哪些类。

我需要一个示例代码来上传视频。

1 个答案:

答案 0 :(得分:2)

我自己也坚持了一段时间(周围没有很多例子),并且在SO上发现了一个非常有效的例子,我已经成功地成型了......

首先,您需要twitvid Java API

1下载jar文件(我使用twitvid-java 1.6.1)

2将它放在你的“libs”文件夹中

3右键单击您的项目并转到“属性”

4选择“Java构建路径”并包含jar(“libraries”选项卡)并确保它已构建(“order and export”选项卡)

下面的代码假设您已经使用常规的twitter4j方法创建了一个令牌:

private void postToTwitvid(String videoPath){

    AccessToken token = mTwitter.getAccessToken();

    Values values = new Values();
    values.setSession(new Session());
    TwitvidApi api = new TwitvidApi(values);
            api.setSecureUrlEnabled(false);

            Session session;
            try {
                session = api.authenticate(new TwitterAuthPack.Builder()
                .setConsumerKey(twitter_consumer_key)
                .setConsumerSecret(twitter_secret_key)
                .setOAuthToken(token.getToken())
                .setOAuthTokenSecret(token.getTokenSecret())
                .build());

                api.getValues().setSession(session);

                final UploadHelper helper = new UploadHelper(api);

                File file=new File(videoPath);
                TwitvidPost twitvidPost = new TwitvidPost.Builder()
                        .setFile(file).setChunkSize(10485760)
                        .setMessage("Twitvid test")
                        .setPostToTwitter(true)
                        .create();
                try {
                    if (helper.upload(twitvidPost))
                    {
                        Toast.makeText(TwitterShare.this, "Posted on Twitter and Twitvid", Toast.LENGTH_LONG).show();
                    } 
                    else 
                    {
                        Toast.makeText(TwitterShare.this, "Post failed", Toast.LENGTH_LONG).show();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }

            } catch (ApiException e1) {
                e1.printStackTrace();
            }



}

令牌取决于您如何实施定期发布到Twitter,只包括您的。 希望这有帮助!

PS:我必须强制UI线程接受网络连接才能使其正常工作

(我的第一个回答!w00t!)