如何在被要求授权的应用程序时检查用户是否单击“忽略”?

时间:2014-03-19 10:13:42

标签: facebook titanium

这是facebook登录事件处理程序:

function facebookLoginHandler(e) {

        Ti.API.error("--)))+++   e.success   : "+e.success);

        if (e.success) {

            Ti.API.error("fb login success");
            Ti.API.info('user id ' + facebook.uid);


            //SELECT uid,first_name,last_name,sex,pic_square,email,birthday_date,current_address,current_address.street,current_address.city,current_address.country,current_address.zip,email,last_name,locale,sex,pic,pic_big,pic_small,profile_url FROM user WHERE uid=me()

            facebook.request('fql.query', {query: "SELECT first_name,last_name,sex,email,birthday_date,profile_url FROM user WHERE uid="+facebook.uid
                },  function(r) {

                    Ti.API.error("facebook.request CallBack fn is RUNNING");
                    Ti.API.info('r.success ' + r.success);


                    Ti.API.error("--)))+++   r.success   : "+r.success);

            if (!r.success) {
                if (r.error) {
                    alert(r.error);
                } else {
                    alert("call was unsuccessful");
                }
                return;
            } else {
                var result = JSON.parse(r.result);

            Ti.API.info('r.result ' + r.result);

            Ti.API.info('result[0].email : ' + result[0].email);
            Ti.API.info('result[0].profile_url : ' + result[0].profile_url);
            Ti.API.info('result[0].sex : ' + result[0].sex);
            Ti.API.info('result[0].birthday_date : ' + result[0].birthday_date);
            Ti.API.info('result[0].last_name : ' + result[0].last_name);
            Ti.API.info('result[0].first_name : ' + result[0].first_name);

            if (Titanium.Network.networkType === Titanium.Network.NETWORK_NONE) {

               alert(L('indisp_cnnx_msg'));
            } else {
                //////  
                //  le controller suivant est  global scopped pour pouvoir l'annuler une fois on a plus besoin!!
                // c'est pas CON
                /////   
                Alloy.Globals.getJsonArrayByHttpCtrl = Alloy.createController('getJsonArrayByHttp');
                Alloy.Globals.getJsonArrayByHttpCtrl.getJsonArrayByHttp("userHasAccreq", "ws-bookmynight.php?op=verifyUser&email="+result[0].email+"&fb="+result[0].profile_url);
            }
            }




            // for (var c=0;c<result.length;c++)
            // {
                // var row = result[c];
                // Ti.API.info('c  : ' + c);
                // Ti.API.info('row[0].first_name  : ' + row.first_name);
            // Ti.API.info('row[0].last_name : ' + row.last_name);
            // Ti.API.info('row[0].birthday_date : ' + row.birthday_date);
            // Ti.API.info('row[0].profile_url : ' + row.profile_url);
            // Ti.API.info('row[0].email : ' + row.email);
            // Ti.API.info('row[0].sex : ' + row.sex);
            // }

            // for (var c=0;c<result[0].length;c++)
            // {
                // Ti.API.info('result['+c+'] ' + result[c]);
                 // //var row = result[c];
            // }

        });

        } else if (e.error) {
            // Error!
        } else if (e.cancelled) {
            // cancelled by user
        }
    } 

“e.success”始终设置为true,单击“忽略”或“确定”。 如何控制?

1 个答案:

答案 0 :(得分:1)

在第一次Facebook授权和应用尝试重新授权用户后,将看到消息:&#34;您已经授权

如果您想测试用户未授权您的应用时会发生什么,您必须转到 Facebook test account settings 并从该列表中删除您的应用删除所有权限。然后当你点击&#34;取消&#34;您将获得&#34;用户取消登录过程。&#34;错误事件:

{
      bubbles = 1;
      cancelBubble = 0;
      cancelled = 1;
      code = "-1";
      error = "User cancelled the login process.";
      source = "[object facebook]";
      success = 0;
      type = login;
}