FreelyApps

個人によるアプリ開発の日記です。アプリの収入だけで生活できるようになるのが目標です。UnityでAndroid向けのゲームアプリを作成しています。


    アプリ『トランプ・7並べ』を公開しました。
    Android/iOS https://goo.gl/zsFces

    タグ:Twitter

      このエントリーをはてなブックマークに追加 Clip to Evernote
    アプリを作ったら、自然に広まっていくようにするためSNSとの連携ができるようにしたいと思うかもしれません。ゲームであれば、何らかのタイミングで結果が出ます。その瞬間にSNSに投稿できるようにするというのは自然だと思います。

    Unityを使ってSNSと連携するときに最も簡単なのはTwitterのTweet Web Intentを使うことだと思います。 特定のURLにアクセスすることでウェブサーバーがツイートを行うようにしてくれます。Web APIという呼ばれ方をされている利用方法でしょう。ものによっては認証が必要なことがありますが、ツイートすることについてはブラウザでアクセスするだけで可能です。

    https://twitter.com/intent/tweet?text=test

    のようなURLをApplication.OpenURLに渡してやれば良いです。このサイトを見ているブラウザで試してみるとわかりやすくて良いでしょう。私の場合、赤字になっているURLをブラウザでコピペして開いた結果が以下のようになりました。
    tw-wintent

    単なる文字列を投稿するだけならtextパラメータに値を設定すれば良いですが、渡す文字列はURLの書式に対応したものでなければなりません。具体的に言うと、文字列データをWWW.EscapeURLで変換したあとの文字列を渡す必要があります。
    var webintent = "https://twitter.com/intent/tweet?text=" + WWW.EscapeURL("送りたい文字列");
    というようにすれば良いということです。

    クエリパラメータにはいくつか種類が用意されているので、他にもできることがあります。クエリパラメータを使わなくても特殊な文字列(#、@など)を使っても問題なく動きます。

    このTweet Web Intentを使うことの利点はUnityの機能をあまり使っていないということです。単にブラウザにアクセスする機能さえあれば、あとはURLを適切に作成するだけなので、どの端末でも間違いなく動きます。AndroidでもiOSでもWindowsでもMacでも関係がありません。
    欠点はURLに埋め込めるのは文字列だけということとSNSによっては対応していない方法だということです。いくつかのSNSはこういった機能を持っているので、同じようなことができます(どれに投稿するか選ぶ画面を作らなくてはなりませんが)。

    簡単にSNSに連携してみたいという場合は、Tweet Web Intentを使ってみるのが最も良いと思います。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    ゲームなどのアプリでは、SNS系のアプリ(Twitter、LINE、Facebookなど)に拡散できる仕組みを入れるのが常識になっています。文字だけの投稿もありますが、画像があった方が良いので最近は画像付きの投稿が行えるものも多くなっています。

    画像付きのツイートを送信するには当然画像がなければなりません。この画像はスクリーンショットを使うことがほとんどでしょう。画面を撮影した画像を特定のフォルダに保存して、その場所と文字列(アプリの紹介文だったり、ゲームの結果だったり)をTwitterアプリに渡すことで画像の付きのツイートができるわけです。
    画像を作ったり、Twitterアプリに適切なものを渡して連携するところもそれなりに難しいのですが、一度できてしまえばどんなアプリでも同じ仕組みで動きます。ちゃんと作るという条件付きですが、成功したら正しく動くのでわけのわからない問題は起きないでしょう。

    きちんと作って画像付きのツイートを送信することができたとしても、Android6.0では動かなくなることがあると判明しました。Android6.0に対応するように作っていないのだから、それはそうだという話ではありますが、Unityを使っているとAndroidを直接いじるのは面倒極まりないのです。なので対処法を見つけることにして、なんとかお茶を濁そうと考えています。

    原因はAndroid6.0以上のOSを使っている場合、権限の管理ができるようになったためでした。この権限のうちWRITE_EXTERNAL_STORAGEというファイルの保存に関わる許可を得られないと画像ファイルにアクセスできないため、画像付きのツイートができないのです。しかもTwitterが落ちることも結構あります。
    SS_TwitterAbort

    5.9以前ではアプリをインストールするときに必要な権限は全て許可するようになっていたので、開発者はAndroidManifestに必要なパーミッションを入れておけばそれで十分でした。
    しかしながら6.0ではユーザーが自由に権限をON/OFFできるようになってるため、それだと不十分なことがあります。「Android 6.0 以降のアプリの権限の管理」として公式ページで説明してあります。

    どのような操作をすると画像付きのツイートを送信できるようになるか
    をメモしておきます。Android6.0以前の端末ではきちんと動くのに6.0では動かないという場合、以下の対応で正常に動く可能性があります。(試した端末のAndroidバージョンは6.0.1でした。)
    まず画像付きのツイートをすると画像にアクセスできずにTwitterアプリが停止するといった症状が出る場合、設定->アプリを開き、Twitterにデータを渡している問題のアプリを開きます。アプリの情報が下のように表示されているはずです。
    許可というところをみると「権限が付与されていません」と出ています。この状態だと駄目なので、許可というところをタップして設定を変えます。許可をタップすると右のようにアプリの権限の一覧画面になります。ここではストレージという権限があり、それが無効になっているという状態です。
    SS_TN_PicTwi1 SS_TN_PicTwi2

    ストレージをタップして権限を有効化します。右の方にトグルが移動し、緑色になりました。これで権限がゆうこうになります。1つ前のアプリ情報の画面に戻ると、許可にストレージが現れています。
    SS_TN_PicTwi3 SS_TN_PicTwi4

    権限の有効・無効を設定した場合、一度アプリを終了させないと反映されないようです。意外と重要なことですが、忘れがちなことなので注意するべきです。


    Android6.0以降に対応したアプリでは権限の管理についても対応するというのが正しいあり方です。
    対応方法は開発者用の情報に載っています。当然AndroidのAPIを直接呼び出しています。
    権限があるか常にチェックするためのメソッドがあり、それにより権限が与えられているかを判定してプログラミングすれば良さそうです。また権限を要求するためのダイアログを出す機能も用意されていました。(Runtime Permissonとかで検索するとそれなりにヒットするので興味がある場合は調べてみるのもいいと思います。)

    端末ごとの対応はしたくないので、テキストだけのツイートにするかアプリの紹介ページに「Android6.0をお使いの方は~」 的な対処方法を書いておくのが現実的かなあというところです。
    アプリが落ちたりしないようなので、まあ妥協点です。 

      このエントリーをはてなブックマークに追加 Clip to Evernote
    ブログにツイートを載せる方法は以前「Twitterのつぶやきをブログに載せる」で説明しました。どのようなブログでも載せられるし、ホームページに載せることもできるので最も使い道が多い方法でした。 

    HTMLを知っている人からすれば使いやすくて良いのですが、人によってはわからないということもあるでしょう。 今回はこのブログで使っているlivedoor Blogで簡単にツイートを載せる方法を紹介したいと思います。
    一度設定をする必要がありますが、それを行えば次回以降は非常に簡単に載せることができるようになります。 

    まずTwitterのアカウントにログインしておいてください。

    ブログの管理画面にログインして、ブログ設定->外部サービスと押してください。
    bcon

     外部サービス連携というページになり、画面の上の方にTwitterのアカウントをブログに関連付ける設定があります。
    btset

    Twitterにログインというボタンがあるので、それを押すとTwitterのログイン画面になります。既にログインしていれば、Twitterとlivedoor Blogを連携させるか聞かれます。ボタンを押して連携すると
    bts
     
    上のようにブログと連携したTwitterのアカウントの情報が表示されます。
    ブログの記事を投稿したらツイートするといったことも設定できますが、「記事投稿時にTwitterへ通知メッセージを同時投稿する」にチェックをつけて画面下部の設定するボタンを押すだけです。


    設定が終わったら、いよいよ本題です。
    ブログの記事を各画面で文字の大きさや色を変えるなどの操作が行えるボタンが並んでいるところがあります。ここにTwitterバード(青い鳥のロゴ)があります。
    bteasy

    これを押すと設定したツイッターアカウントのタイムライン等が見れます。以下のように表示されます。
    ttl

    ブログに載せたいツイートを選んで、挿入するボタンを押せば記事にツイートが埋め込まれます。ツイートが埋め込まれる場所は文字が書かれていくカーソルのところです。

    試しにこの機能でツイートを以下に載せてみました。動画とか画像とかが埋め込まれたツイートの場合はそれも表示されるようです。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    PCの操作を撮影したいことがあります。それもそんなに大容量なファイルに書き出さないようにしたいときです。具体的な例で言うと、TwitterにPCの操作画面を載せるときなどです。Twitterは3MBまでの容量制限があるので、普通の動画ファイルをアップすることは無理なことが多いです。
    要望を満たすスクリーンのある範囲を軽いファイルで録画できるフリーソフトを紹介します。

     以前、ロイロゲームレコーダーを使い動画を撮ることを記事にしました。ゲームプレイの動画を撮る以外にも操作しているウィンドウの録画ができるので、PCの操作画面も撮ることができます。
    スクリーンのある範囲を録画しているわけではないので、下のように複数の異なるソフトを同時に撮るといったことはできません。
    mulwin

    画面上のある範囲を録画するレコーダーは、スクリーンレコーダーとかで検索すると見つかると思います。私が使っているソフトは、ScreenToGifというものです。
    ウィンドウの枠だけのような見た目のソフトでこの枠がそのまま録画できる範囲を表しています。ウィンドウのサイズと位置を調整したら、Recordボタンを押して録画できます。簡単に録画ができるのがすごく便利です。

    stg

    録画をやめたくなったら、Stopを押して録画終了です。終了後には下のような編集画面が開きます。色々な編集ができますが、特に何もせずDoneを押せばそのまま録画がGifとして保存されます。操作画面を撮っていると、動画の初めと終わり部分はいらなかったりすることが多いのですが、ScreenToGifではある時点の前もしくは後ろを全てカットする機能があり簡単に邪魔な部分を消せます。

    stgedit

    GIFファイルは画像なので、音声を入れることができません。操作中の音を入れたいという場合はこのツールでは対応できないので、その場合はロイロゲームレコーダーを使うとか他のツールを使う必要があります。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    Twitterのつぶやきをブログに載せることを試してみました。
    以下には2つのつぶやきがあります。


    これは『Q』というアプリをUnityで再現できないかと試したときのつぶやきです。GIFアニメも投稿したので、それも見えるようになっています。ツイッターで書いたことも後で見返してみると、記事にしておく価値のあることもあります。
    今回はテストなので今後埋め込むような使い方をするかわかりませんが、やり方だけメモしておこうと思います。 


    まずTwitterを開き、埋め込みたいツイートを表示します。

    tem

    ○が3つ並んだアイコンをクリックして、メニューを開き「ツイートをサイトに埋め込む」という項目をクリックします。画面が以下のように切り替わります。

    tem2
     
    表示されたコードをコピーして、載せたい場所にそれを貼りつけます。ブログの場合は記事の本文中に載せたり、HTMLで書いてあるレイアウトのどこかに載せるといった使い方ができます。 
    「メディアを含める」にチェックが入っているとツイートに付随した画像などが付いてきます。チェックしないと文字だけが埋め込みの対象です。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    Twitterのアカウントを作成しました。


    私は少ししか使ったことがなかったので、今まで作成していませんでした。
    いろいろな用途がありそうなので、今回利用することにしました。

    特に重要なのが宣伝です。
    アプリの作成をしただけでは全くダウンロードされないという状況なので、なんとかそれを増やしたいと思っています。
    そのためにはまずアプリの存在を知ってもらうことです。
    私のようにテレビや新聞などの広告が出せない場合、自分で宣伝していく必要があります。
    このブログもその一環なのですが、Twitterの方が拡散されて広がっていくという違った魅力があります。

    より気軽でゆるいつながりが敷居を下げてくれるのではないかと期待しています。
    どのような活用になっていくかは試行錯誤で決まってくると思います。
    ブログの機能でTwitterと連携できるそうなので、まずはそれをやってみたいと思います。

    今後はリリースするアプリ内からツイートすることができるようにするといったことも検討中です。

    このページのトップヘ