【问题标题】:Not able to get user public_profile information and email through Facebook module Android Titanium?无法通过 Facebook 模块 Android Titanium 获取用户 public_profile 信息和电子邮件?
【发布时间】:2016-02-06 04:33:08
【问题描述】:

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

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

【问题讨论】:

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


【解决方案1】:

您是否记得添加文件:/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();

/约翰

【讨论】:

  • 是的,我已经添加了它。主要问题是我必须得到未返回的用户电子邮件。
  • 啊...好的。不知道你怎么能做到这一点。你看过 facebook API 文档吗?它是否向您展示了您尝试做的方式?
  • ... 在我的回复中添加了关于 appid 的建议。认为你需要那个:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-10
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-14
  • 2015-11-07
相关资源
最近更新 更多