【Unity】Twitterに投稿する

今回はTwitterに投稿する方法について書いていこうと思います。投稿の仕方はiOSはSocial.frameworkを使用し、AndroidはIntentによってTwitterのActivityを起動することによって投稿します。

iOSでの投稿

まずSocial.frameworkを使うために、ネイティブプラグインを作成します。内容は引数の値を元にSocial.frameworkを使用しているだけなので割愛します。

 

ネイティブプラグインが作成できたら、Unityで投稿するためのスクリプトを作成します。まず、実際に投稿を行う前に投稿する画像を一度端末に保存する必要があるので、そのメソッドを作成します。また、ファイルの書き込みには名前空間にSystem.IOを追加する必要があります。

これは一度画像を読み込んだあと、byte配列に変換したものをアプリのDocumentフォルダに保存しています。Application.persistentDataPathはDocumentフォルダのパスを返します。

保存ができたら今度はネイティブプラグインに値を渡してSocial.frameworkを起動して投稿用のダイアログを表示させます。

 

メソッドが実行されるとこのようにダイアログが表示されます。

 

 

Androidでの投稿

AndroidはまずActivityを取得し、IntentをAndroidJavaObjectで作成します。そして作成したIntentにステータスを追加してActivityを起動します。また、Player SettingからWrite AccessをExternalに変更する必要があります。

ここで少し問題なのが、このスクリプトはUnity5では動作しません。4.6.7f1までは動作するのを確認しました。動作しない理由としてはApplication.persistentDataPathがWrite AccessをExternalにしているとNullを返してしまうせいです。一応の対処法としてはApplication.persistentDataPathの代わりにAndroidのメソッドであるgetExternalFilesDir()を使用して直接パスを指定する方法などがあります。ちなみに画像を使用しなければ、Write AccessをExternalにする必要が無く、Intentを起動するのみなのでUnity5でもTwitterの起動までは出来ます。

 

終わりに

今回はTwitterに投稿する方法について書きました。Twitterに投稿するというよりかはSocial.frameworkの呼び出し方とIntentを作成してActivityを起動する方法がメインになってしまいました。

 

 

次回はLineに送る方法について書いて、一旦この連載も終了しようかと思います。

 

 

では、また。

 

●この記事を書いた人