28368


Androidから twitter4j を使用して、文字列＋画像は正常に投稿できています。  
今度これにプラスして、文字列＋動画を同じように投稿してみたのですが、  
エラーが発生します。

そもそも twitter4j は、動画投稿に対応しているのでしょうか？  
ドキュメントを読んでも動画投稿に関する記述をみつけることができませんでした。

もし、対応していない場合は、Twitterに動画投稿する方法についてアドバイスをよろしくお願い致します。

ソースコード抜粋：

[code]

    ConfigurationBuilder builder = new ConfigurationBuilder();
    builder.setOAuthConsumerKey(Const.TW_CONSUMER_KEY);
    builder.setOAuthConsumerSecret(Const.TW_CONSUMER_SECRET);
    SharedPreferences pref = mActivity.getSharedPreferences(Const.TW_PREF_KEY, Context.MODE_PRIVATE);
    String oauthToken       = pref.getString(Const.TW_SUB_KEY_OAUTH_TOKEN, "");
    String oauthTokenSecret = pref.getString(Const.TW_SUB_KEY_OAUTH_TOKEN_SECRET, "");
    builder.setOAuthAccessToken(oauthToken);
    builder.setOAuthAccessTokenSecret(oauthTokenSecret);
    Configuration config = builder.build();
    Twitter twitter = new TwitterFactory(config).getInstance();
    StatusUpdate status = new StatusUpdate(editText.getText().toString());
    try {
      ByteArrayInputStream is = null;
    
      String path = Environment.getExternalStorageDirectory().toString() + "/video.mp4";
      is = new ByteArrayInputStream(MovieUtils.readAllBytes(path));
      status.media("video.mp4", is);
    
      twitter.updateStatus(status);
    } catch (Exception ex) {
      Log.e(Const.TAG, "Error", ex.fillInStackTrace());
    }
    
[/code]

エラーメッセージ：

[code]

    08-10 14:42:37.834: E/XXXX(17971): Error
    08-10 14:42:37.834: E/XXXX(17971): 403:The request is understood, but it has been refused. An accompanying error message will explain why. 
                                        This code is used when requests are being denied due to update limits (https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following).
    08-10 14:42:37.834: E/XXXX(17971): message - Error creating status.
    08-10 14:42:37.834: E/XXXX(17971): code - 189
    08-10 14:42:37.834: E/XXXX(17971): Relevant discussions can be found on the Internet at:
    08-10 14:42:37.834: E/XXXX(17971):  http://www.google.co.jp/search?q=00000000 or
    08-10 14:42:37.834: E/XXXX(17971):  http://www.google.co.jp/search?q=00000000
    08-10 14:42:37.834: E/XXXX(17971): TwitterException{exceptionCode=[00000000-00000000], statusCode=403, message=Error creating status., code=189, retryAfter=-1, rateLimitStatus=null, version=4.0.4}
    
[/code]


CC BY-SA 3.0
2016-08-10T06:21:52.183
28169
2016-08-19T07:37:18.083
7212
question
android twitter4j
Androidから twitter4j を使用して動画を投稿をしたい


自己レスです。

Twitter4J に動画投稿を追加したライブラリを使用することで動画投稿できました。  
<https://github.com/dk8996/twitter4j>

わりと簡単に実装できました。

ソースコード抜粋：

[code]

    ConfigurationBuilder builder = new ConfigurationBuilder();
    builder.setOAuthConsumerKey(Const.TW_CONSUMER_KEY);
    builder.setOAuthConsumerSecret(Const.TW_CONSUMER_SECRET);
    SharedPreferences pref = mActivity.getSharedPreferences(Const.TW_PREF_KEY, Context.MODE_PRIVATE);
    String oauthToken       = pref.getString(Const.TW_SUB_KEY_OAUTH_TOKEN, "");
    String oauthTokenSecret = pref.getString(Const.TW_SUB_KEY_OAUTH_TOKEN_SECRET, "");
    builder.setOAuthAccessToken(oauthToken);
    builder.setOAuthAccessTokenSecret(oauthTokenSecret);
    Configuration config = builder.build();
    Twitter twitter = new TwitterFactory(config).getInstance();
    StatusUpdate status = new StatusUpdate(editText.getText().toString());
    try {
      FileInputStream is = null;
      String path = Environment.getExternalStorageDirectory().toString() + "/video.mp4";
      File file = new File(path);
      is = new FileInputStream(file);
    
      UploadedMedia media = twitter.uploadMediaChunked("video.mp4", is, file.length());
      status.setMediaIds(new long[]{ media.getMediaId() });
    
      is.close();
    
      twitter.updateStatus(status);
    } catch (Exception ex) {
      Log.e(Const.TAG, "Error", ex.fillInStackTrace());
    }
    
[/code]

ただし、投稿できる動画は長さが30秒まで、30秒より長い動画はエラーになりました。


CC BY-SA 3.0
2016-08-19T06:45:10.947
28368
2016-08-19T07:37:18.083
2016-08-19T07:37:18.083
7212
7212
28169
answer