5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Twitterに自動投稿できる文字数について。(URLは長さに関係なく23文字!)

Last updated at Posted at 2019-12-27

概要

Twitterの自動投稿Botを作っていて、文字数制限がややこしかったので、色々試してみました。 特にURLは長さに関係なく23文字扱いだそうで。 折角色々試したので、残しておきます。

前提

PHPで実験しています。 また、外国語のややこしい文字についてのテストはしていません。

結論

実験の様子は後で書くとして、先に結論。
  • 文字数は、全角2文字、半角1文字として計280文字まで。
  • URLは、長さに関係なく23文字としてカウントされる。(なので、全文字数が280文字未満でアウトになったり、超過してもセーフのケースがある)
  • TwitterがURLと認識しなかった場合は、当然23文字ルールは適用されない

実験の様子

結論は上記の通りなのだけど、エビデンスとして。 実験に使ったコードの文字列を書いておきます。 なお、コメントの~文字は、全て半角換算で記載しています。 ※ちなみに、同じツイートを連投するとエラーになるようなので、実験の際はご注意ください。
// 280文字、URL含まず⇒OK(\nは1文字としてカウントされます)
$str="テストしてます。111\n01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";

// 281文字、URL含まず⇒NG(\nは1文字としてカウントされます)
$str="テストしてます。111\n012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890";

// 280文字、URLを含むがURLと認識せず⇒OK
$str = "テストしてます。111\n0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123https://mixi.jp/";

//280文字、URLと認識⇒NG(URL自体は16文字なのだが、23文字としてカウントされたのでNG)
$str = "テストしてます。111\n012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 https://mixi.jp/";

//258文字+URL⇒NG(URLは22文字として認識される、という記事を見かけたので境界値テスト。NGなので23文字以上という事がわかりました)
$str = "テストしてます。1111012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 https://mixi.jp/";

// 257文字+URL⇒OK(境界値テストその②。OKなのでURL=23文字扱い確定)
$str = "テストしてます。111101234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 https://mixi.jp/";

// 257文字+長いURL⇒OK(文字数は458文字)
$str = "テストしてます。111101234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 https://www.google.com/search?q=php+%E6%96%87%E5%AD%97+%E3%83%90%E3%82%A4%E3%83%88%E6%95%B0&oq=php+%E6%96%87%E5%AD%97%E3%80%80%E3%83%90%E3%82%A4%E3%83%88%E6%95%B0&aqs=chrome..69i57j0.9445j0j9&sourceid=chrome&ie=UTF-8";

最後に

以下は弊社の宣伝になります。

現在弊社では、HRモンスターと呼ばれる
採用の新しいスタイルを提供するサービスをローンチいたしました。

ローンチ後のさらなる機能追加、改善などのPDCAサイクルを回すべく、
エンジニアを募集しております。
https://www.wantedly.com/projects/341182

Kubernetes、Vue.js(Javascript)、Django(Python)といったモダンな技術を使って、
開発しておりますので、もしご興味がある方はぜひ、ご応募お待ちしております。

5
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?