ようへい

2012年5月16日水曜日

Google Playで「払い戻し」が表示されなくなった場合

発端

5/11、Google Playでゲームアプリを探していたところ、一見面白そうなタワーディフェンスゲームを見つけた。
今までに購入したことが無いゲームだったので、最悪払い戻しできると考え、購入した。 プレイしてみると、テンポも悪く、想像と異なったため払い戻しをしようとした。
購入してから5分程度しか経過していない。
スマートフォンでGoogle Playにアクセスし、マイアプリから払い戻しをしようとしたところ、開くアンインストールしか表示されていない。
どういう事だ?と思い、とりあえずアンインストールしてみた。
しかし、Google Walletでは請求されたままとなっている。
う~ん。
私は面白くないアプリは即払い戻しをしているので、払い戻しの回数は多い。
そこで、払い戻しの回数に制限を設けられたか?と思いGoogle Playの払い戻し規約が変更になっているのか調べたが、1回も払い戻ししていないアプリで、購入してから15分以内なら払い戻しができるのは変わっていない。
Google Playのアプリが原因かと思い、Titanium Backup ★ rootのバックアップからアプリのバージョンを1つ前のバージョン(3.5.16->3.5.15)に戻すが、変わらず・・・。
そうこうしているうちに15分経過。
試しに他のアプリを購入してみることにした。
払い戻しが行われなくても困らない、カイロソフトのゲームを購入した。
インストールが行われ、Googleから注文明細のメールが届いた事を確認。
Google Playにアクセスし、マイアプリから該当のアプリの払い戻しをしようとしたところ、やはり開くアンインストールしか表示されていない。
Googleにコンタクトを取ることにした。

Googleからの返答

とりあえず以下からGoogleに問い合わせを行った。
タブレットまたは携帯端末上の Google Play での Android アプリに関する問題 - Google Play ヘルプ
https://support.google.com/googleplay/bin/request.py?contact_type=market_phone_tablet_web 数日待つと、Googleから返答が来た。
要約すると以下の内容。
  • Google側でも原因不明
  • 該当の注文番号はキャンセルしたから確認してほしい
  • 再発時は再度連絡してほしい
との事。
再度Google Play(バージョン3.5.19)で他のアプリを購入してみたが、今度は払い戻しが表示された。
同じような事象が発生したらGoogleに問い合わせてみてください。

私も次回発生時には画面キャプチャを採取しようと思います。
関連記事

2012年5月15日火曜日

Twitter APIで レスポンスコード 400 が返る場合の対処

400 Bad Requestが返される

このブログにもTwitterのWidgetを配置していますが、このWidgetの中ではTwitterのAPIが呼ばれています。
しかし、このAPIには、リクエストの制限が施されており、未認証状態でAPIをリクエストする場合は1時間あたり150リクエストまで、認証状態でリクエストする場合は、1時間あたり350リクエストまでとなっている。
Rate Limiting | Twitter Developers
https://dev.twitter.com/docs/rate-limiting たまたまFirebugのコンソールを眺めていたら、400 Bad RequestというエラーがTwitter APIで発生していた。
Twitter APIを利用している部分はtry/catchで囲んでいたのだが、どうやらエラーハンドリングができていないらしい。
使用していたコードは以下。
try{
  $(document).ready(function() {
    new TWTR.Widget({
      //必要に合わせパラメタを指定
    }).render().setUser('TwitterのID').start();
  });
} catch (e){}
エラーが発生したことで、Javascriptが中断され、後続の処理が実行されていない。
という事で解決策を調べてみた。

リクエスト可能な残数を調べる

Twitter APIのページを眺めていたら、APIをリクエスト可能な残数を調べることができるという事がわかった。
GET account/rate_limit_status | Twitter Developers
https://dev.twitter.com/docs/api/1/get/account/rate_limit_status これによると、http://api.twitter.com/1/account/rate_limit_status.format (formatはjson/xmlのいずれかを指定)をリクエストする事により、リクエスト可能な残数を取得できるとの事。
以下のリンクをクリックすると、リクエスト可能な残数(remaining_hits)を含めたJSONを参照できます。
https://api.twitter.com/1/account/rate_limit_status.json
という事で、Twitter APIによるウィジェットをリクエストする前に、あらかじめ上記のURLからJSONを取得し、リクエスト可能な残数を調べ、リクエスト可能であればウィジェットをリクエストするという処理にすれば良さそう。

対処したコード

前提条件
  • jQuery (1.5以上のバージョン) を読み込んでいる事
  • http://widgets.twimg.com/j/2/widget.jsを読み込んでいる事
try{
  $(document).ready(function() {
    $.getJSON('http://api.twitter.com/1/account/rate_limit_status.json?callback=?', {}, function(json){
      if(json.remaining_hits != "0"){
        new TWTR.Widget({
          //必要に合わせパラメタを指定
        }).render().setUser('TwitterのID').start();
      }
    });
  });
} catch (e){}

TWTR.Widgetのパラメタ

基本的には以下で自動生成できるので、それを使う。
Twitter / プロフィールウィジェット
http://twitter.com/about/resources/widgets/widget_profile
Twitter / 検索ウィジェット
https://twitter.com/about/resources/widgets/widget_search
Twitter / お気に入りウィジェット
https://twitter.com/about/resources/widgets/widget_faves
Twitter / リストウィジェット
https://twitter.com/about/resources/widgets/widget_list パラメタについて自分で調べてみた。
パラメタ 説明
id Widgetを挿入するエレメントのID
version Widgetのバージョン
type Widgetの種類
プロフィール/検索/お気に入り/一覧 のいずれかを指定
(profile|search|faves|favs|list|lists)
search 検索キーワード
typeにsearchを指定した場合必須
rpp 表示するツイート数
subject ウィジェットに表示するキャプション
typeにsearch,faves,favs,list,listsを指定した場合のみ有効
title ウィジェットに表示するタイトル
typeにsearch,faves,favs,list,listsを指定した場合のみ有効
footer フッタに表示するタイトル
creator 開発者モード(true|false)
trueにした場合、/stylesheets/widgets/widget.cssのCSSがリクエストされます。
このCSSはあらかじめ用意しておく必要があります。
interval ツイートを更新する間隔(msec)
features/loopをtrueにしている場合は、ループ間隔
width ウィジェットの幅(px)
height ウィジェットの高さ(px)
theme Widgetのスタイル
theme/shell Widget外側のスタイル
theme/tweets Widget内側(Tweet部分)のスタイル
features Widgetの機能を指定
features/scrollbar スクロールバーの表示/非表示(true|false)
features/loop ループ表示するか(true|false)
features/live 最新のデータを読み込むか(true|false)
features/behavior すべてのツイートを読み込むか(default|all)
関連記事

5/15 Android ニュースひとまとめ

au「CDMX 1X」サービス終了
 サービス終了2012年7月
 KDDIと沖縄セルラーは、au携帯電話で利用している周波数の切り替えに伴い、「CDMA1X」3機種においても、通信の利用ができなくなると発表した。これを機にソフトバンクに乗り換える家族が増えている。  今なら乗り換え時に発生する解除料も負担。5月までなら、ホワイト学割で、月額基本料金が最大3年間無料に!詳しくは記載店スタッフへ!
えっ...どういうこと!? とあるソフトバンクショップに「7月22日 auケータイ利用停止!!」の案内 : ギズモード・ジャパン
http://www.gizmodo.jp/2012/05/722_au.html
これはやり過ぎ。
最近、Softbankもおかしな事やってるなぁ・・・。
これ下手したら訴訟になりますよ。
こういう事すると消費者が離れるって事に気付かないのかなぁ・・・。
 auは15日、Android搭載スマートフォン5機種などの新端末を発表した。NVIDIA Tegra 3搭載でDTCP-IP対応の「ARROWS Z」と、「AQUOS PHONE」3機種、有機EL搭載「URBANO PROGRESSO」をラインナップし、5月下旬以降に順次発売する。

 OSは5機種ともAndroid 4.0で、防水/防塵仕様。ワンセグや赤外線通信、FeliCa(おサイフケータイ)にも対応する。また、「ARROWS Z」と「AQUOS PHONE SERIE」、「URBANO PROGRESSO」の3モデルはWiMAXを搭載し、これらはテザリングにも対応する。

 さらに、東芝製の10.1型「レグザタブレット AT500/26F」のau専用モデルもラインナップ。3Gは搭載しないが、「auスマートパス」や「au Wi-Fi SPOT」、写真共有などau IDを使ったサービスが利用できる。
au、Tegra 3の「ARROWS Z」などAndroid 4.0スマホ5機種 -AV Watch
http://av.watch.impress.co.jp/docs/news/20120515_532744.html
ん、東芝のタブレットはauスマートパス対応?
スマフォと別にauスマートパスの契約が必要なのか等調査したいと思います。
調査結果は以下に追記します。 auスマートパスを利用する前に知っておくべき事 - ログろいど
 フィンランドのセキュリティ企業F-Secureは5月14日、2012年1~3月期のモバイルセキュリティ動向に関する報告書を発表した。主にAndroidを狙うマルウェアの現状について解説している。

 報告書によると、Androidを搭載した端末の普及に伴い、“実入りのいい”ターゲットとしてAndroidが狙われる傾向が鮮明になり、新手のマルウェアは増加の一途をたどっている。2012年1~3月期に見つかった悪質なAndroidアプリケーションパッケージファイル(APK)の数は3063件と、2011年同期の139件に比べて激増したという。
Androidマルウェアは増加の一途、高度化も進展 F-Secure報告書 - ITmedia ニュース
http://www.itmedia.co.jp/news/articles/1205/15/news024.html
アプリインストール前には権限やレビュー内容のチェックを忘れずに。
端末が普及したことでターゲットにされるのは致し方ないですね。
ただし、文末に以下の記載がありました。
 配布の手段としては主に非正規のアプリストアが使われているが、中にはGoogleが展開する正規のアプリストア「Android Marketplace」(現Google Play)に不正なアプリが紛れ込むケースも報告されている。
よって、非正規のルートで入手したようなアプリは更なる注意が必要です。
関連記事

Notepad Tutorial (準備編)

Notepad Tutorial | Android Developers
http://developer.android.com/intl/ja/resources/tutorials/notepad/index.html NotepadCodeLab.zipをチュートリアルのページからダウンロードし、解凍します。
Notepadv1、Notepadv2、Notepadv3のフォルダを、Eclipseのワークスペースに移動します。

Eclipseにインポートする

NotepadプロジェクトをEclipseにインポートします。
Notepadv1のインポート
Eclipseに新規のプロジェクトを作成します。
プロジェクト名
Notepadv1
外部ソースからプロジェクト作成
Location
Eclipseワークスペース内のNotepadv1を選択
ビルド・ターゲット
Android 2.3.3
上記以外は規定値のままとします。
パッケージツリーにNotepadv1が表示された事を確認します。
Notepadv2のインポート
Eclipseに新規のプロジェクトを作成します。
プロジェクト名
Notepadv2
外部ソースからプロジェクト作成
Location
Eclipseワークスペース内のNotepadv2を選択
ビルド・ターゲット
Android 2.3.3
上記以外は規定値のままとします。
パッケージツリーにNotepadv2が表示された事を確認します。
Notepadv3のインポート
Eclipseに新規のプロジェクトを作成します。
プロジェクト名
Notepadv3
外部ソースからプロジェクト作成
Location
Eclipseワークスペース内のNotepadv3を選択
ビルド・ターゲット
Android 2.3.3
上記以外は規定値のままとします。
パッケージツリーにNotepadv3が表示された事を確認します。
次回より、インポートしたプロジェクトに対して実践していきます。
続きは以下を参照
関連記事

5/14 Android ニュースひとまとめ

 株式会社東芝は、タブレット端末「レグザタブレット」シリーズの新製品として、13.3型の「AT830」、10.1型の「AT700」「AT500」、7.7型の「AT570」の4機種6モデルを発表した。5月18日から順次発売する。

 新機種は、全モデルでOSにAndroid 4.0を採用。東芝の映像処理技術「レゾリューションプラス」などによる高画質化や、音響処理技術により聴き取りやすい音を出力する機能などを搭載。液晶テレビ「レグザ」やブルーレイディスクレコーダー「レグザブルーレイ」と連携してLAN経由で放送中の番組や録画番組を視聴できる機能を備える。通信は各モデルとも無線LAN(IEEE 802.11b/g/n)とBluetooth 3.0に対応する。

 AT830は、ディスプレイに13.3型IPS液晶(1600×900ドット)、CPUにTegra 3(1.4GHz)を搭載する大画面モデル。本体に地上デジタル放送/ワンセグチューナーを内蔵し、ロッドアンテナにより屋外でもテレビを視聴できる。記憶容量は64GB、メモリは1GB。本体サイズは約343.8×211.3×9.9mm。重量は約1.00kg。店頭想定価格は8万円前後で、5月18日発売。

 AT700は、ディスプレイに10.1型IPS液晶(1280×800ドット)、CPUにOMAP 4430(1.2GHz)を搭載する薄型軽量モデル。記憶容量は64GB、メモリは1GB。本体サイズは約256.0×176.0×7.7mm。重量は約535g。店頭想定価格は7万円前後で、5月18日発売。
東芝、Android 4.0搭載「レグザタブレット」4機種を発表 -INTERNET Watch
http://internet.watch.impress.co.jp/docs/news/20120514_532696.html
性能等は申し分ないんですけど、いかんせん値段が・・・
東芝なんで値崩れ早そうですけど。
 株式会社カイロソフトは5月14日、Android用シミュレーションRPG「星になったカイロくん」の配信をGoogle Playにて開始した。価格は450円。対応機種はAndroid OS 1.6以上のAndroid端末。

 「星になったカイロくん」は、宇宙コロニーを警備しながら運営するシミュレーションRPG。プレーヤーは警備隊のコロニーを運営しながら、数々に舞い込んでくるモンスター退治や護衛の依頼を受けて宇宙警備界のスターを目指す。
カイロソフト、Android「星になったカイロくん」を配信。8bitの量産型ロボットが活躍する宇宙警備シミュレーションRPG - GAME Watch
http://game.watch.impress.co.jp/docs/news/20120514_532701.html
カイロソフトの5月のアプリは、星になったカイロくんとのことです。
順次プレイ&レビュー予定です。
星になったカイロくん - Google Play の Android アプリ
https://play.google.com/store/apps/details?id=net.kairosoft.android.starkairo_ja
 Androidアプリ開発者が抱えている悩みの一つに、「OSのバージョンや端末の種類がたくさんありすぎて、動作検証をするのが困難」というものがある。国内の通信事業者が販売している端末に限っても、既に100機種前後が存在し、よほど規模の大きなベンダーでなければ自前で端末を揃えて検証するのがかなり難しい状況になっている。

 シフトでは、国内の主要な通信事業者が販売するスマートフォンを94機種144種類以上(取材時点)保有しており、これらを使って2000個以上のバグを分析したデータベースを基にアプリのバグを洗い出すテストを実施している。
Android開発の頭痛の種、「全端末検証」を可能にする請負サービスをシフトが展示 - ニュース:ITpro
http://itpro.nikkeibp.co.jp/article/NEWS/20120514/396476/
多様化している製品ならではのサービスですね。
ブラックボックステストのみとのことなので、ホワイトボックステストはJUnit等で対処する必要があるみたいですね。
企業等でアプリを提供している場合は、なかなか有用かと思います。
検証端末をレンタルする料金もバカになりませんし。
 情報スペースが、Android向けカレンダーアプリ「ジョルテ」のコンテンツ販売サイト「ジョルテストア」を開設した。ジョルテは本物のシステム手帳の雰囲気に近づけた手帳アプリ。今回開設したジョルテストアでは、アプリ内で利用できるアイコンや背景画像のデザイン素材などを販売する。

 第1弾は、人気キャラクター「スヌーピー」や「チェブラーシカ」のアイコンや背景画像をセットにしたもので、それぞれ10個セットのアイコンは99円、背景画像3枚セットは99円。またオープン記念として、ジョルテのユーザーを対象にスヌーピー背景画像1枚を無料でプレゼントするキャンペーンも実施する。期間は5月31日まで。
Android向けカレンダーアプリ「ジョルテ」のデザイン素材販売サイト開設 - ITmedia +D モバイル
http://plusd.itmedia.co.jp/mobile/articles/1205/14/news121.html
私はシンプルな無料のデザインで充分ですが、こだわりたい人はアイコン等ダウンロード可能になっています。
この影響でバナー等が無料版に表示されなければいいのですが・・・。
関連記事