【问题标题】:Uploading Video on twitter using HTTP API使用 HTTP API 在 Twitter 上上传视频
【发布时间】:2015-10-08 02:48:47
【问题描述】:

您好,我正在尝试使用 twitter Twitter POST video Request 的 REST API 上传视频

在本文档中,我无法理解如何从我的 Android 代码中执行此命令。:

twurl -H upload.twitter.com "/1.1/media/upload.json" -d "command=INIT&media_type=video/mp4&total_bytes=4430752"

另外,我可以使用 twitter4j 发布状态更新和图像,是否需要重新验证才能使用 HTTP API:

protected Void doInBackground(String... args) {
            Date date = new Date();
            String status = date.toString();
            Log.d("Status", status);
            try {
                ConfigurationBuilder builder = new ConfigurationBuilder();
                builder.setOAuthConsumerKey(consumerKey);
                builder.setOAuthConsumerSecret(consumerSecret);

                // Access Token
                String access_token = mSharedPreferences.getString(PREF_KEY_OAUTH_TOKEN, "");
                // Access Token Secret
                String access_token_secret = mSharedPreferences.getString(PREF_KEY_OAUTH_SECRET, "");

                AccessToken accessToken = new AccessToken(access_token, access_token_secret);
                Twitter twitter = new TwitterFactory(builder.build()).getInstance(accessToken);

                // Update status
                StatusUpdate statusUpdate = new StatusUpdate("@UserName : " +status);
                if(((MyApplication)getActivity().getApplication()).getLinkPath() != null) { //getting image resource file
                    String s = "file://" + ((MyApplication) getActivity().getApplication()).getLinkPath();
                    Uri uri = Uri.parse(s);
                    InputStream is = getActivity().getContentResolver().openInputStream(uri);
                    Log.d("Logger", "Sending media");
                    statusUpdate.setMedia(s, is);
                    Log.d(s, "Sent media");

                }
                twitter4j.Status response = twitter.updateStatus(statusUpdate);

                Log.d("Status", response.getText());

            } catch (TwitterException e) {
                Log.d("Failed to post!", e.getMessage());
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            return null;
        }
    }

【问题讨论】:

  • 你忘了解释你的命令是做什么的。
  • 使用分块的 POST 媒体/上传端点需要调整单个图像上传的工作流程。对于视频或分块上传,您必须: 使用 INIT 命令初始化上传 这就是该命令的用途。更多命令请参考dev.twitter.com/rest/public/uploading-media#chunkedupload
  • 有任何分块上传视频的例子吗?

标签: java android api twitter twitter4j


【解决方案1】:

2018 年 3 月 16 日更新,新 PR 和 Maven 回购

我创建了一个拉取请求以在 twitter4j 中添加此功能。你可以在这里查看实现: Adding Chuncked, video upload

【讨论】:

  • 看起来它已被接受,但还有一些工作要做。
  • 有什么例子吗?
  • 这是一个旧的 PR。我更新了 PR 以支持完全异步上传 512mb 和 140 秒的大型视频文件。 github.com/yusuke/twitter4j/pull/255
  • 不接受,但如果有人想要这个分支,我创建了一个 Maven 存储库。
  • 拉取请求已被接受。它现在是正式版本的一部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 2011-02-25
  • 1970-01-01
  • 2013-10-04
  • 2017-02-19
相关资源
最近更新 更多