我使用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个字符的图像和文字?
答案 0 :(得分:18)
最后我弄明白了我的问题。添加网址或图片时,Twitter
会将字符限制为118.我认为这听起来很愚蠢。从此链接:http://mediacause.org/10-nonprofit-twitter-tips-140-characters/
我们都会因为限制140个字符而被绊倒(它 听起来很多,直到你开始输入)。添加链接或照片, 并且随附文本的字符数减少到118。 在制作推文并包含获得的文字时,请记住这一点 直截了当
更新:感谢@Aggressor,现在Twitter更新的限制链接取决于获取t.co的网址。
https窃取了23个字符(它是21个),所以你只有117个字符用于文本
对于非https网址,您有118个字符(包装网址为22)。
<强>的Https 强>:
<强> HTTP 强>:
答案 1 :(得分:0)
我从Twitter文档中发现,虽然推文仍然限制在140个字符之内,但字符计数模型随着时间的推移而发展。推文是UTF-8字符串内容,任何UTF-8字符都算作单个字符。被理解为链接的字符串,例如“http://twitter.com”,“twitter.com”,“twitter.com/twitterapi”将自动转换为t.co. t.co链接表示变体字符计数(对于基于HTTP的链接当前为“22”,对于基于HTTPS的链接为“23”)。有关t.co如何在字符计数中发挥作用的更多信息,请参阅How Twitter wraps URLs with t.co。 Counting Characters提供了有关字符统计策略的更多详细信息。
使用GET help/configuration以编程方式跟踪t.co包装长度。字段“short_url_length”和“short_url_length_https”将指示当前长度。