0

私はWindows Phoneにアプリケーションを持っていて、Facebookに登録しています。いくつかのデータをテーブルに保存していますが、1人のユーザーがテーブルに複数回保存されています。そのfb-idを持つレコードがあるかどうかをテーブルでチェック(fb-idを取得)しようとしましたが、再登録する前に新しいユーザーが存在するかどうかを確認する必要がありますが、非同期メソッドなど、順序がなく、常に最初にクエリの挿入、これを解決できますか?

クライアント側 (限定)

                    await App.MobileService.LoginAsync(MobileServiceAuthenticationProvider.Facebook);
                    Message = string.Format("User Authenticate - {0}", App.MobileService.CurrentUser.UserId);

                    //***** Get fb info
                    var userId = App.MobileService.CurrentUser.UserId;
                    var facebookId = userId.Substring(userId.IndexOf(':') + 1);
                    var client = new HttpClient();
                    var fbUser = await client.GetAsync("https://graph.facebook.com/" + facebookId);
                    var response = await fbUser.Content.ReadAsStringAsync();
                    var jo = JObject.Parse(response);
                    var FbidUser = jo.GetValue("id");
                    var userName = jo.GetValue("name");
                    var genero = jo.GetValue("gender");

でも、サーバークライアントでやればいいのですが、情報データを一度挿入する方法、つまり、挿入する前にテーブルのレコードを確認してください。サーバー側 Azure:

function insert(item, user, request) 
{
  item.UserName = "<unknown>"; // default
  var identities = user.getIdentities();
  var req = require('request');

  if (identities.facebook)
  {
    var fbAccessToken = identities.facebook.accessToken;
    var url = 'https://graph.facebook.com/me?access_token=' + fbAccessToken;

    req(url, function (err, resp, body)
    {
        if (err || resp.statusCode !== 200)
        {
            console.error('Error sending data to FB Graph API: ', err);
            request.respond(statusCodes.INTERNAL_SERVER_ERROR, body);
        }
        else 
        {
            try 
            {
                var userData = JSON.parse(body);
                item.UserName = userData.name;
                request.execute();
            } catch (ex) 
            {
                console.error('Error parsing response from FB Graph API: ', ex);
                request.respond(statusCodes.INTERNAL_SERVER_ERROR, ex);
            }
        }
    });

  }
}

上記のコードによると、2 番目の質問があります。Facebook の開発者センターで、メールと写真 (アプリケーション) にアクセスできます。userData変数にこの情報が含まれていると思いますか?、どうすればアクセスできますか?、呼び出し方残りの情報はどこにあるのですか?

4

1 に答える 1