使用钛,有人在登录Facebook后有一些简单的说明来获取用户的Facebook名称吗?
答案 0 :(得分:1)
您无需执行任何操作,登录完成后,数据响应中会提供用户名。
答案 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
}
});
};
最后,与name
和username
一起,查看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调用,依此类推。我只是将所有细节都保存到数据库中,然后每次都检索它们,对我来说工作正常!