避けては通れない Windowsストアアプリ

Windows store アプリ
           Brekky の苦労話
【TechBuzz】第4回Windows8開発技術勉強会
Profile
                        せきね さとし

                        関根 聡


Satoshi.sekine2             株式会社アライズ



Satoshi__3                  arise.inc
Windowsストアアプリ

そもそも用語がわかりません
Windowsストアアプリ
デスクトップアプリ   Windowsストアアプリ
Windows8の機能と用語
スタート画面    デスクトップ
タイル
WIDEタイル
ライブタイル
チャーム   チャーム
「アプリバー」と「ナビゲーションバー」




                  ナビゲーションバー




  アプリバー

          このボタンを「コマンド」と呼
                ぶ
Windowsストアアプリ

さて開発
 環境つくるよ
開発環境
OS windows 8
とりあえず試すだけなら評価版
http://msdn.microsoft.com/en-US/evalcenter/jj554510.aspx




IDE VisualStudio2012 for Windows8
Express版
http://msdn.microsoft.com/ja-jp/windows/apps/br229516
開発言語
Facebook連携

さてさて実装のお話
facebook C# SDK




https://github.com/facebook-csharp-sdk/facebook-csharp-sdk
ライブラリ作成


              (a)Releaseにする




   (b)[ビルド]-[ソリューションのビルド]
dllの参照
Facebookの設定



      APP ID
④朝食情報の管理
           ⑤朝食の連携




③朝食の投稿


                      ⑥朝食画像の管理




             ①ログイン


             ②朝食の投稿
                      ⑦朝食画像の連携
                       Http要求
連携部分
ログイン後、FQLを使ってユーザ情報を取得してみる。
// 予めWebViewコントロールを配置しておきます。
// そのコントロールに x:Name=“WebView1” と名前をつけておきます。
// ■準備
private readonly FacebookClient _fb = new FacebookClient();
// パーミッション
private const string extendedPermissions =
                       "user_about_me,read_stream,publish_stream";

// ■facebookのログインUrlを作る
dynamic para = new ExpandoObject();
para.client_id = appId; // facebookアプリ登録時に払いだされたID
para.redirect_uri =
                  "https://www.facebook.com/connect/login_success.html";
para.response_type = "token";
para.display = "popup";
para.scope = extendedPermissions;
Uri loginUrl = _fb.GetLoginUrl(parameters);
// ■Urlへのアクセスと結果を処理するメソッドの登録
WebView1.LoadCompleted += WebView1_LoadCompleted;
WebView1.Navigate(loginUrl );

// ■結果を処理するメソッドの処理内容(WebView1_LoadCompleted)
FacebookOAuthResult oauthResult;
if (!_fb.TryParseOAuthCallbackUrl(e.Uri, out oauthResult))
{
    return;
}
if (oauthResult.IsSuccess)
{
    // ログインに成功しアクセストークンが取得できました!
    var accessToken = oauthResult.AccessToken;
    // 以降FQLを発行するためにアクセストークンを設定しておく。
    _fb.AccessToken = accessToken;
}
// ■FQLを使ってユーザ情報を取得する
// FQL
var fql = "SELECT uid,name,pic_square FROM user WHERE uid=me()";

// 発行
dynamic fqlParameters = new ExpandoObject();
fqlParameters.q = new { fql1 };
dynamic fqlResult1 = await _fb.GetTaskAsync("fql", fqlParameters);

// 結果から値を取り出す
dynamic resultForQuery1 = fqlResult1.data[0].fql_result_set;
long facebookID = resultForQuery1[0].uid;
string userName = resultForQuery1[0].name;
string userPicURL = resultForQuery1[0].pic_square;




                          こんな感じで
                         情報がとれました!
アプリ申請

アプリも出来たので
 ストアに申請するよ
Windowsストア開発者アカウント




http://msdn.microsoft.com/ja-jp/library/windows/apps/hh868184.aspx
Windowsストア開発者アカウント
         失敗談


会社で一つ共有のアカウントを
作っておくと良いよ。
コードの入力が毎回必要



アカウントの移行作業が結構ややこしい。
申請は大体1週間ぐらい
かなしい知らせは突如来る
具体的な内容は
      審査担当者 からのコメント
• C:: The app has declared access to network
  capabilities and no privacy statement was provided in
  the Windows Settings Charm.

• G:: Missing or incomplete account information
  provided to reviewer. This prevented us from
  completing our review of this app.

• A:: When reviewing the app, our reviewers observed
  instability issues when using snapped views with this
  app. More information on snapped views can be found
  here:
Google先生お願いします。


The app has declared access to network capabilities and
no privacy statement was provided in the Windows
Settings Charm


                        アプリはネットワーク機能へのアクセスを宣言し、全く
                        のプライバシーに関する声明は、Windowsの設定チャー
                        ムで提供されていない
「Windowsストアアプリはインターネットに
アクセスするアプリは必ずプライバシーポリシーへの
    リンクを設けなければいけない。」
Google先生お願いします。


Missing or incomplete account information provided to
reviewer. This prevented us from completing our review of
this app.


                         行方不明者や校閲に提供不完全なアカウント情報。これ
                         は、このアプリの見直しを完了することから私たちを防
                         ぐ。
要はログイン出来るユーザ情報が必要
 申請の時にログインユーザの情報も一緒に渡して上げる必要が
 あります。
 今回の場合は、画像も添付するアプリでしたので画像も合わせ
 て添付しました。
実際テストもするようです。
送った画像   投稿された画像
Google先生お願いします。


When reviewing the app, our reviewers observed
instability issues when using snapped views with this app.
More information on snapped views can be found here

                         このアプリでスナップされたビューを使用する場合、ア
                         プリを再確認するときには、私たちのレビューアが不安
                         定になる問題を観察した。スナップされたビューの詳細
                         については、ここで見つけることができます:
スナップを出した時に不具合がありました。
(アプリが落ちる)
そして再申請
認定された\(^o^)/
まとめ
アカウントの移行は結構ややこしい。

ネットワークを使うアプリはプライバシーポリシーは必須。

Facebookアプリの時にはアプリを確認出来るユーザもお忘れなく。

スナップは、使わなくても実装が必要。
面倒だったら、サイズを合わせた画像でOK!
ご静聴ありがとうございました。

Windows storeアプリ brekky