UnityにTwitterボタン設置して、ボタンを押してくれたユーザに報酬をプレゼントします。
■Twitterボタンの入手
自作するとレギュレーションが面倒なので、特にこだわりのない場合はTwitterの公式からボタン画像をダウンロードしましょう。
https://about.twitter.com/ja/company/brand-resources.html
よく見かける四角いボタンはこのページの「ソーシャルボタン」でダウンロードできます。
■TwitterのURL
Twitterのアプリ起動(PCブラウザならTwitterのページ表示)は簡単で、TwitterのURLをたたくと勝手に表示されます。このときURLにパラメータをつけると投稿文やハッシュタグをプリセットしてくれます。
例)
https://twitter.com/intent/tweet?text=Unity%20テスト%0ahttp://総務省.jp//&hashtags=総務省_HP
総務省のHPが日本語URLだったので、勝手に利用。怒られないよね?
「text=」のところに本文を記載。英数字であればそのまま記載するとツイッターの投稿画面に表示されます。ただし、本文中で改行したい場合は「%0a」、スペースを入れたい場合は「%20」と表現する必要があります。
上記のURLは日本語を含んでいますが、Unityを経由しなければ普通に叩けます。Unityで使うためにはUnityWebRequest.EscapeURLで文字列のエスケープをしてあげます。さらにこちらだと改行を「\n」で表現したり、スペースをそのまま「 」で表現できるので使いやすいです。
「hashtags=」のところにハッシュタグを書けます。Twitterのハッシュタグはスペースを認識しないので、スペースを入れるとスペース手前の文字でハッシュタグとみなされるので注意。単語を分離したい場合はスペースの代わりに_(アンダーバー)を入れましょう。
以上からTwitterボタン(正確にはImageにEvent Triggerをつけたものですけど)を押したときの処理はこのように書けます。
public void OnClickTwitterButton()
{
//urlの作成
string esctext = UnityWebRequest.EscapeURL("テスト Unity\nhttp://総務省.jp//");
string esctag = UnityWebRequest.EscapeURL("総務省_HP");
string url = "https://twitter.com/intent/tweet?text=" + esctext + "&hashtags=" + esctag;
//Twitter投稿画面の起動
Application.OpenURL(url);
//ここに報酬の処理を記載
clickflag = 1;
}
■報酬の発生
関数を呼び出すとブラウザ(スマホならアプリ)が起動して、Twitterの入稿画面が表示されます。
ブラウザ起動のすぐ後に次の処理が走っているので、報酬はツイートしなくてももらえることになります。最近のゲームでこの形式をとっているのを見かけますが、アプリやサーバでTwitterのアカウント管理をしなくてよいことや、投稿完了のステータスを取得しなくてよいことがメリットです。
デメリットはツイートしていないのに報酬を与えてしまうことですね。10人中1人でもツイートしてくれれば、ゲーム情報を拡散してくれるので、お手軽実装なのとツイート率のトレードオフですね。