钛 - 获取Facebook用户名?

时间:2012-11-03 16:47:33

标签: facebook titanium

使用钛,有人在登录Facebook后有一些简单的说明来获取用户的Facebook名称吗?

3 个答案:

答案 0 :(得分:1)

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

Look at the appcelerator documentation

答案 1 :(得分:0)

我没有测试过代码,但你可以试试这个:

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
    });
};

答案 2 :(得分:0)

啊,这是你怎么做的:

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
        }
    });

};

最后,与nameusername一起,查看Facebook页面,了解您可以获得的其他变量 -

http://developers.facebook.com/docs/reference/api/

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

我猜你可以创建一个漂亮的循环,只是...循环,直到某个变量设置为false。并且你在回调中将变量设置为false ......但这似乎很狡猾。

只需回电即可所有其他,也就是说,保存到db等等

如果你去调用Ti.Facebook.authorise()的路线来登录用户,记得定义

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

然后,在成功位中,您可以进行requestWithGraphPath调用,依此类推。我只是将所有细节都保存到数据库中,然后每次都检索它们,对我来说工作正常!