钛-获取facebook用户名?

钛-获取facebook用户名?,facebook,titanium,Facebook,Titanium,使用Tianium,登录facebook后,是否有人有一些简单的说明来获取用户的facebook名称?我还没有测试代码,但您可以尝试以下方法: var fbuid = Titanium.Facebook.uid; //this would be the logged user's facebook uid function fQuery() //this function exec the fql query { var myQuery = "SELECT name FROM user

使用Tianium,登录facebook后,是否有人有一些简单的说明来获取用户的facebook名称?

我还没有测试代码,但您可以尝试以下方法:

var fbuid = Titanium.Facebook.uid; //this would be the logged user's facebook uid

function fQuery() //this function exec the fql query
{
    var myQuery = "SELECT name FROM user WHERE uid = "+fbuid;

    var data = [];

    Titanium.Facebook.request('fql.query', {query: myQuery},  function(x)
    {   
        var results = JSON.parse(x.result);
        var username = results[0].name; //user's fb name
    });
};

我尚未测试代码,但您可以尝试以下方法:

var fbuid = Titanium.Facebook.uid; //this would be the logged user's facebook uid

function fQuery() //this function exec the fql query
{
    var myQuery = "SELECT name FROM user WHERE uid = "+fbuid;

    var data = [];

    Titanium.Facebook.request('fql.query', {query: myQuery},  function(x)
    {   
        var results = JSON.parse(x.result);
        var username = results[0].name; //user's fb name
    });
};

啊,你是怎么做到的:

function getFacebookInfo(){
    Titanium.Facebook.requestWithGraphPath('me', {}, 'GET', function(e){
        if (e.success){
            var jsonObject  = JSON.parse(e.result);
            //do something here with these values. They cannot be passed out of this
            //function call... this is an asynchronous call
            //that is, do this:
            saveToDb(jsonObject.first_name);
        } else {
            //some sort of error message here i guess
        }
    });

};
最后,连同
名称
用户名
,查看facebook页面,了解您可以获得的其他变量-

最后:请注意,这是一个回调,Tianium实际上不会等待此调用完成。也就是说,任何声明用于保存requestWithGraphPAth之后返回的结果的变量都将立即返回,因此几乎总是空的

我想你可以做一个漂亮的循环。。。循环,直到某个变量设置为false。在回调函数中将变量设置为false。。。但这似乎是不可靠的

只要让你的电话回做其他一切,即保存到数据库等

如果您通过调用Ti.Facebook.authorize()登录用户,请记住定义

Ti.Facebook.addEventListener('login',function(e){
    if (e.success){ 
...
...
    } else if (e.error){  } else if (e.cancel) { }
}

在电话之前。然后,在成功位中,您可以使用GraphPath调用发出请求,以此类推。我只是将所有细节保存到数据库中,然后每次都检索它们,这对我来说很好

啊,下面是你的做法:

function getFacebookInfo(){
    Titanium.Facebook.requestWithGraphPath('me', {}, 'GET', function(e){
        if (e.success){
            var jsonObject  = JSON.parse(e.result);
            //do something here with these values. They cannot be passed out of this
            //function call... this is an asynchronous call
            //that is, do this:
            saveToDb(jsonObject.first_name);
        } else {
            //some sort of error message here i guess
        }
    });

};
最后,连同
名称
用户名
,查看facebook页面,了解您可以获得的其他变量-

最后:请注意,这是一个回调,Tianium实际上不会等待此调用完成。也就是说,任何声明用于保存requestWithGraphPAth之后返回的结果的变量都将立即返回,因此几乎总是空的

我想你可以做一个漂亮的循环。。。循环,直到某个变量设置为false。在回调函数中将变量设置为false。。。但这似乎是不可靠的

只要让你的电话回做其他一切,即保存到数据库等

如果您通过调用Ti.Facebook.authorize()登录用户,请记住定义

Ti.Facebook.addEventListener('login',function(e){
    if (e.success){ 
...
...
    } else if (e.error){  } else if (e.cancel) { }
}

在电话之前。然后,在成功位中,您可以使用GraphPath调用发出请求,以此类推。我只是将所有细节保存到数据库中,然后每次都检索它们,这对我来说很好

您无需执行任何操作,登录完成后,数据响应中将提供用户名


您无需执行任何操作,登录完成后,数据响应中将提供用户名


hm,不-这是在使用“请求”调用,我们被鼓励不要这样做。另外,请求是异步的。。。所以你的用户名不会得到结果。这个答案在每一个可能的层面上都是错误的。嗯,不-这是在使用“请求”调用,我们被鼓励不要这样做。所以,请求是异步的。。。所以你的用户名不会得到结果。这个答案在所有可能的层面上都是错误的。你是对的。。。但是我使用了authorize,所以我需要定义一个处理程序等来处理这个问题。尽管如此,+1为我指明了正确的方向。你是对的。。。但是我使用了authorize,所以我需要定义一个处理程序等来处理这个问题。尽管如此,+1为我指明了正确的方向。