テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

Twitterと連携する その2

この記事はこちらの記事の続き

[Unity3D]Twitterと連携する その1
http://terasur.blog.fc2.com/blog-entry-177.html

前回の記事ではUnity内でツィッターを実装したけど、日本語を完全にサポートできない問題が残った。

もちろんツィートする内容を制限するのであれば問題はないのだが、(定例文のみ送信的な)ユーザーからすれば不便だと思う。

Twitterをブラウザに任せる

最も確実な方法はブラウザに任せてしまうこと。
スマートフォンはブラウザをほぼ確実に搭載しているので、かなりの確率で動作すると思うし、実装も容易。

何よりTwitterOAuth認証が要らないので、ツィートする敷居が大幅に下がると思う。

ブログにツイートボタンを設置しよう(Twitterをはじめよう!)
http://www.greenspace.info/twitter/blogparts.html#tweet_button

とりあえずURLを叩いてみてほしい。【URL

ブログを書いている人はご存知かもしれないが、ツィッターは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]を使う。
Unityの使っている.netは[System.Web]が使えないらしいので、こちらを採用。
[WWW.EscapeURL]でURLエンコードするほうがスマート。

最後に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 : Open the phones web browser(Unity Answers)
http://unity3d.qatohost.com/answers/164518/view.html

Androidの実装は、こちらのURLが参考になる。

【Unity】 各プラットホームでのURLジャンプの方法(あさいちのーと)
http://asaichi256.blog.fc2.com/blog-entry-26.html



正直、下手に機能を実装するよりも、ブラウザに一任したほうが
手間も少ないし、TwitterOAuth認証が無いのでユーザーに親切だと思う。
(ちょっとツィートするのにOAuth認証が必要とか面倒臭すぎる)

強いてUnity内に実装する利点を探すなら
・「ツィートした事」を把握できる点と
・アプリ切り替えが発生しないこと。
 (ブラウザが莫大なメモリを使うと、アプリが終了する)
ここらへんは企画の要求によりけりだけど、さてはて。


祝・Unity関連記事100個!(Unity奮闘記も含めると既に100は超えてるけど気にしない)