1

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

但只能获取姓名和身份证。虽然我可以使用 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 执行。抛出未定义令牌的异常。

4

1 回答 1

0

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

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

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

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

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

fb_s.authorize();

/约翰

于 2015-11-05T11:36:34.397 回答