4

去除织物后,现在在 android 中使用 Twitter kit 3

案子 :

  • 我需要在不打开的情况下共享文本、图像和视频Twitter Composer

  • 我正在使用 twitter kit 3 共享文本、图像和视频,方法是StatusesService

  • 所以我可以使用下面的代码分享文本:

    final TwitterSession session = TwitterCore.getInstance().getSessionManager().getActiveSession();
    StatusesService statusesService = TwitterCore.getInstance().getApiClient(session).getStatusesService();
    statusesService.update("Click this link "+getShareLink(),null,null,null,null,null,null,null,null).enqueue(new Callback<Tweet>() {
        @Override
        public void success(Result<Tweet> result) {
            Toast.makeText(context,"Tweet success ",Toast.LENGTH_SHORT).show();
            Log.e(TAG,"Twitter "+ result.data.toString());
        }
    
        @Override
        public void failure(TwitterException exception) {
            Toast.makeText(context,"Tweet failure ",Toast.LENGTH_SHORT).show();
            Log.e(TAG,"Twitter "+ exception.getMessage());
        }
    });
    
  • 对于图片上传,我们可以使用MediaService,对于上传,我们可以使用MediaService.upload()方法,但在MediaService他们只提示图片上传,我还检查了他们的文档。

  • 现在如何使用StatuesServices或任何其他方法在 Twitter 工具包 3 中分享视频?

4

2 回答 2

3

1) 原生视频上传支持仅适用于iOS(见附件部分)

2) Quick Bad workaround 您可以将视频转换为 gif 并上传。

3)适当的解决方案

您可以扩展套件,并使用media/uploads 端点

看到这个发出一个帖子请求。

于 2017-10-19T04:00:05.213 回答
0

它正在使用 tweet-composer:3.3.0。

我只是简单地将视频 Uri 添加到了我们通常添加图像 Uri 的位置。它出乎意料地起作用了。

private void shareVideoViaTwitter(File file) {
    try {
        Uri uri = FileProvider.getUriForFile(context, "com.civ.petcam.fileprovider", file);

        context.startActivity(new TweetComposer.Builder(context)
                .text("This video is made with PetCamera")
                .url(new URL("https://play.google.com/store/apps/details?id=com.civ.petcam"))
                .image(uri).createIntent().setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));

        onVideoShareCompleteListener.onVideoShareComplete("twitter");
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
于 2021-11-23T05:33:56.537 回答