この記事はこちらの記事の続き
前回の記事ではUnity内でツィッターを実装したけど、日本語を完全にサポートできない問題が残った。[Unity3D]Twitterと連携する その1
http://terasur.blog.fc2.com/blog-entry-177.html
もちろんツィートする内容を制限するのであれば問題はないのだが、(定例文のみ送信的な)ユーザーからすれば不便だと思う。
■Twitterをブラウザに任せる
最も確実な方法はブラウザに任せてしまうこと。
スマートフォンはブラウザをほぼ確実に搭載しているので、かなりの確率で動作すると思うし、実装も容易。
何よりTwitterのOAuth認証が要らないので、ツィートする敷居が大幅に下がると思う。
とりあえずURLを叩いてみてほしい。【URL】ブログにツイートボタンを設置しよう(Twitterをはじめよう!)
http://www.greenspace.info/twitter/blogparts.html#tweet_button
ブログを書いている人はご存知かもしれないが、ツィッターはURLにちょっと手を加えることで簡単に投稿フォームを出す仕組みがある。
これを使う。
■Twitterを送信する方法
と言うことで使い方。
まずURLを作成する。
ツィッターの投稿フォームを表示するURLは、下のフォーマットで表示できる。
「http://twitter.com/share?text=文章」(これはリンク共有の方だ。指摘感謝)
「https://twitter.com/intent/tweet?text=文章/」(20120612追記)
この[文章]を初期に入力する文章に差し替える。Web Intents(Twitter Developers)
https://dev.twitter.com/docs/intents
ただ使う文章はURLエンコーディングでエンコードする必要がある。
URLエンコーディングするには[System.Uri.EscapeUriString]を使う。[WWW.EscapeURL]でURLエンコードするほうがスマート。
Unityの使っている.netは[System.Web]が使えないらしいので、こちらを採用。
最後にUnityからWebブラウザを呼び出す。
実行するには、[Application.OpenURL]を使う。
サンプルはこんな感じ。
string format = "https://twitter.com/intent/tweet?&text={0}";
string url = string.Format(format, WWW.EscapeURL("Twitterは楽しいよ") );
Application.OpenURL(url);
ただ、どうもAndroidの場合は[Application.OpenURL]はProしか使えないらいし。そんな事はなかった
(リファレンスマニュアルにはこんな記述はない。はてさて)
Androidの実装は、こちらのURLが参考になる。Android : Open the phones web browser(Unity Answers)
http://unity3d.qatohost.com/answers/164518/view.html
【Unity】 各プラットホームでのURLジャンプの方法(あさいちのーと)
http://asaichi256.blog.fc2.com/blog-entry-26.html
正直、下手に機能を実装するよりも、ブラウザに一任したほうが
手間も少ないし、TwitterのOAuth認証が無いのでユーザーに親切だと思う。
(ちょっとツィートするのにOAuth認証が必要とか面倒臭すぎる)
強いてUnity内に実装する利点を探すなら
・「ツィートした事」を把握できる点と
・アプリ切り替えが発生しないこと。
(ブラウザが莫大なメモリを使うと、アプリが終了する)ここらへんは企画の要求によりけりだけど、さてはて。
祝・Unity関連記事100個!(Unity奮闘記も含めると既に100は超えてるけど気にしない)