2016/03/18
ツイート機能の作り方 [その他]
前回の記事で「ツイート機能」を付けた、と書きました。
そこで今回は、その「作り方」を解説します。
ツイート機能の仕組み
「あらかじめ内容が入力されている状態で表示される」という機能。
これをどうやって実現しているかというと、実は「URL」なのです。
「https://twitter.com/intent/tweet?text=ツイート内容」というURLにアクセスすると、
ツイート内容があらかじめ入力された状態になっているツイート画面を表示する事ができます。
ただし、ツイート内容をそのままURLに付ければよい訳ではありません。
例えば「こんにちは」と入力された状態になっているURLは、
「https://twitter.com/intent/tweet?text=こんにちは」ではなく
「https://twitter.com/intent/tweet?text=%E3%81%93%E3%82%93%E3%81
%AB%E3%81%A1%E3%81%AF」なのです。
(※アルファベットは小文字でも大丈夫です)
訳の分からない文字の羅列が出てきましたが、
これは「URLには使用できない文字を、使用できる文字の組み合わせで表したもの」なのです。
この組み合わせに変換する事を「URLエンコード」といいます。
なお、この組み合わせにはいくつかのバリエーションがあります。
URLエンコードは「文字コード」に基づいて行われるのですが、
その文字コードの種類に応じて変換結果が異なるものになるのです。
そして、ツイート画面のURLは「Unicode(UTF-8)」で変換したものでなければなりません。
他の文字コードだと正常に読み取ってくれないので、注意しましょう。
内容をまとめると、「https://twitter.com/intent/tweet?text=」の後に
「ツイート内容を『Unicode(UTF-8)』でURLエンコードしたもの」を付けたURLにアクセスすると、
「あらかじめ内容が入力されている状態でツイート画面を表示する」事ができる、という事です。
ActionScript1.0~2.0におけるツイート機能の実装方法
以下のコードを記述してください。
getURL("https://twitter.com/intent/tweet?text=" + escape("ツイート内容"), "_blank");
「getURL」は指定したURLにアクセスする関数、「escape」はURLエンコードを行う関数です。
文字コードは基本的に「Unicode(UTF-8)」として処理されるので気にする必要はありません。
ただし、「System.useCodepage = true」としている場合は文字コードがOSに依存する為、
この時はfalseにしておきましょう。
(※このプロパティはFlash 6以降にのみ存在します。初期値はfalseです。)
Twitterの文字数のカウントの仕組み
Twitterでは、1回の投稿(ツイート)に140文字までしか入れられません。
しかしその文字数のカウントは、場合によっては実際の文字数と異なるものになる事があります。
それは、「URLを使用した場合」です。
URLは実際の長さに関係なく、一律で「23文字」としてカウントされるのです。
よって、文字数から制限をオーバーしているかどうかを判定する際には、
この事を考慮する必要があるといえます。
では、今回はこれで終わりとさせていただきます。
そこで今回は、その「作り方」を解説します。
ツイート機能の仕組み
「あらかじめ内容が入力されている状態で表示される」という機能。
これをどうやって実現しているかというと、実は「URL」なのです。
「https://twitter.com/intent/tweet?text=ツイート内容」というURLにアクセスすると、
ツイート内容があらかじめ入力された状態になっているツイート画面を表示する事ができます。
ただし、ツイート内容をそのままURLに付ければよい訳ではありません。
例えば「こんにちは」と入力された状態になっているURLは、
「https://twitter.com/intent/tweet?text=こんにちは」ではなく
「https://twitter.com/intent/tweet?text=%E3%81%93%E3%82%93%E3%81
%AB%E3%81%A1%E3%81%AF」なのです。
(※アルファベットは小文字でも大丈夫です)
訳の分からない文字の羅列が出てきましたが、
これは「URLには使用できない文字を、使用できる文字の組み合わせで表したもの」なのです。
この組み合わせに変換する事を「URLエンコード」といいます。
なお、この組み合わせにはいくつかのバリエーションがあります。
URLエンコードは「文字コード」に基づいて行われるのですが、
その文字コードの種類に応じて変換結果が異なるものになるのです。
そして、ツイート画面のURLは「Unicode(UTF-8)」で変換したものでなければなりません。
他の文字コードだと正常に読み取ってくれないので、注意しましょう。
内容をまとめると、「https://twitter.com/intent/tweet?text=」の後に
「ツイート内容を『Unicode(UTF-8)』でURLエンコードしたもの」を付けたURLにアクセスすると、
「あらかじめ内容が入力されている状態でツイート画面を表示する」事ができる、という事です。
ActionScript1.0~2.0におけるツイート機能の実装方法
以下のコードを記述してください。
getURL("https://twitter.com/intent/tweet?text=" + escape("ツイート内容"), "_blank");
「getURL」は指定したURLにアクセスする関数、「escape」はURLエンコードを行う関数です。
文字コードは基本的に「Unicode(UTF-8)」として処理されるので気にする必要はありません。
ただし、「System.useCodepage = true」としている場合は文字コードがOSに依存する為、
この時はfalseにしておきましょう。
(※このプロパティはFlash 6以降にのみ存在します。初期値はfalseです。)
Twitterの文字数のカウントの仕組み
Twitterでは、1回の投稿(ツイート)に140文字までしか入れられません。
しかしその文字数のカウントは、場合によっては実際の文字数と異なるものになる事があります。
それは、「URLを使用した場合」です。
URLは実際の長さに関係なく、一律で「23文字」としてカウントされるのです。
よって、文字数から制限をオーバーしているかどうかを判定する際には、
この事を考慮する必要があるといえます。
では、今回はこれで終わりとさせていただきます。
2016-03-18 11:23
nice!(0)
トラックバック(0)