3

我曾经twitter4j在 android 中发布推文,包括图像和文本。我的文本被截断到少于 140。但我想知道为什么服务器响应超过 140 个字符异常。
这是我的尝试:

 message = trimTweet(message); // guaranteed max length is less than 140
 StatusUpdate status = new StatusUpdate(message);

    if(bitmapUri != null){
    status.setMedia(new File(getRealPathFromURI(getApplicationContext(), bitmapUri)));
    }

  twitter.updateStatus(status);

服务器响应:

  10-23 19:18:00.842: E//NewsActivity.java:280(25288):  
  TwitterException{exceptionCode=[b2b52c28-11aaaacd], statusCode=403, 
  message=Status is over 140 characters., code=186, retryAfter=-1, 
  rateLimitStatus=null, version=3.0.4}
  10-23 19:18:00.842: E//NewsDetailActivity.java:280(25288):    at  twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:162)
 10-23 19:18:00.842: E//NewsDetailActivity.java:280(25288):     at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
 10-23 19:18:00.842: E//NewsDetailActivity.java:280(25288):     at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:98)

从调试中,我可以看到我的推文消息少于 140 个字符(有时是 138 或 139)。但是当我尝试只发送 108 或 110 个字符时,它发送成功。然后我想知道twitter4j将我的图像添加到推文中。是对的吗?
如何发送只有 140 个字符的图像和文本?

4

2 回答 2

18

最后我发现了我的问题。添加 URL 或图像时,Twitter将字符限制为 118 个。我认为这听起来很愚蠢。从这个链接: http: //mediacause.org/10-nonprofit-twitter-tips-140-characters/

我们都被 140 个字符的限制所困扰(在您开始输入之前听起来很多)。添加链接或照片,随附文本的字符数将减少到 118。在制作推文时请记住这一点,并包含直截了当的文本

更新:感谢@Aggressor,现在 twitter 更新限制链接取决于获取 t.co 包装的 URL。
https 窃取了 23 个字符(原来是 21 个),所以你只有 117 个字符的文本。
对于非 https url,您有 118 个字符(包装后的 url 为 22)。

网址
在此处输入图像描述

网址
在此处输入图像描述

于 2013-10-26T06:37:51.557 回答
0

我从 twitter 文档中发现,虽然 Tweets 仍然限制为 140 个字符,但字符计数模型已经随着时间的推移而发展。推文是 UTF-8 字符串内容,任何 UTF-8 字符都算作单个字符。被理解为链接的字符串,例如“ http://twitter.com ”、“twitter.com”、“twitter.com/twitterapi”将自动转换为 t.co。t.co 链接表示变体字符数(当前“22”表示基于 HTTP 的链接,“23”表示基于 HTTPS 的链接)。有关 t.co如何在字符计数中发挥作用的更多信息,请参阅Twitter 如何使用 t.co 包装 URL 。Counting Characters提供了有关字符计数策略的更多详细信息。

使用GET 帮助/配置以编程方式跟踪 t.co 包装长度。“short_url_length”和“short_url_length_https”字段将指示当前长度。

于 2013-10-23T09:26:15.503 回答