无法通过Facebook模块Android Titanium获取用户的public_profile信息和电子邮件?

时间:2015-11-05 11:01:31

标签: facebook facebook-graph-api titanium titanium-android

我无法在Facebook模块中获取用户的public_profile信息和电子邮件。 Facebook模块版本4.0.5 钛sdk 4.1.0 我已按照文档中描述的所有步骤操作。 Appcelerator Documentation

但只能得到名字和身份证明。虽然我可以使用FB模块4.0.5在iOS中获取电子邮件和public_profile信息。但Android没有成功。最近发生了变化,或者我是以错误的方式做事。 我正在使用的这些权限:

fb.permissions = ['public_profile', 'email'];

请求是通过graphAPI。

exports.loginWithFb = function(callback) {
fb.addEventListener('login', function(e) {
if (e.success) {
Ti.API.error('from facebook success');
fb.requestWithGraphPath("me", {}, 'GET', function(e) {
Ti.API.error("from info success: " + JSON.stringify(e.result));
var data = JSON.parse(e.result);
callback(data);
});
} else if (e.error) {
Ti.API.error('error in fb login: ' + JSON.stringify(e.error));
callback(e);
} else if (e.cancelled) {
Ti.API.error('login cancelled: ' + JSON.stringify(e.error));
callback(e);
}
});
fb.authorize();
};

对于iOS,我以这种方式使用了图谱API。

    fb.requestWithGraphPath("me?fields=name,email,first_name,last_name", {}, 'GET', function(e) {
Ti.API.error("from info success: " + JSON.stringify(e.result));
var data = JSON.parse(e.result);
callback(data);
});

但是相同的图形API调用没有针对Android执行。抛出未定义的令牌的异常。

1 个答案:

答案 0 :(得分:0)

您是否记得添加文件:/platform/android/res/values/strings.xml?内容类似于:

<resources>
    <string name="facebook_app_id">FACEBOOK_APP_ID</string>
</resources>

我现在也在使用这个模块 - 虽然只是想分享......所以不完全相同的情况: - )

我在寻找自己的挑战解决方案时看到的另一件事是,你似乎需要提供Facebook&#34; appid&#34;在你尝试调用&#34; .authorize()&#34;之前。像这样:

fb_s.appid = YOUR_FB_APP_ID;
fb_s.permissions = ['...'];

fb_s.authorize();

/约翰