FacebookSDK没有';android中的nt发送电子邮件参数
我在从Facebook获取电子邮件时遇到问题。登录后,我会发送所有数据,如姓名等,但我错过了他们需要的电子邮件FacebookSDK没有';android中的nt发送电子邮件参数,android,facebook,facebook-android-sdk,Android,Facebook,Facebook Android Sdk,我在从Facebook获取电子邮件时遇到问题。登录后,我会发送所有数据,如姓名等,但我错过了他们需要的电子邮件 GraphObject{graphObjectClass=GraphUser, state={"id":"1069060169776842","first_name":"Peter","timezone":1,"verified":true,"name":"Peter Javorek","locale":"sk_SK","link":"https:\/\/www.facebook.co
GraphObject{graphObjectClass=GraphUser, state={"id":"1069060169776842","first_name":"Peter","timezone":1,"verified":true,"name":"Peter Javorek","locale":"sk_SK","link":"https:\/\/www.facebook.com\/app_scoped_user_id\/1069060169776842\/","last_name":"Javorek","gender":"male","updated_time":"2014-12-18T12:28:15+0000"}}
在Facebook开发者上,我创建了一个新项目,加入了密钥哈希,并从中获取应用程序ID,将其作为教程添加到应用程序中。
我已向公众启用该应用程序,并包含登录权限:
-电子邮件
-公共档案
用户朋友 我使用了Facebook SDK 3.23.0 这是我的代码:
private UiLifecycleHelper uiHelperFB;
private Session.StatusCallback callback = new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
onSessionStateChange(session, state, exception);
}
};
private void onSessionStateChange(Session session, SessionState state, Exception exception) {
if (state.isOpened()) {
Log.v("motozo", "SessionOpen: ***");
for (String sessionData : session.getPermissions()) {
Log.v("", "PERMISSIONS: " + sessionData);
}
GraphUserCallback graphUserCallback = new GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
Log.v("", "Return: " + String.valueOf(user));
}
};
Request request = Request.newMeRequest(session, graphUserCallback);
request.executeAsync();
} else if (state.isClosed()) {
Log.v("", "Logged out...");
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
uiHelperFB.onSaveInstanceState(outState);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_first_page);
super.onCreate(savedInstanceState);
uiHelperFB = new UiLifecycleHelper(this, callback);
uiHelperFB.onCreate(savedInstanceState);
LoginButton fbLoginButton = (LoginButton) findViewById(R.id.fb_login_button);
fbLoginButton.setPublishPermissions(Arrays.asList("email"));
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
uiHelperFB.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onStop() {
super.onStop();
uiHelperFB.onStop();
}
@Override
protected void onResume() {
super.onResume();
uiHelperFB.onResume();
}
@Override
protected void onPause() {
super.onPause();
uiHelperFB.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
uiHelperFB.onDestroy();
}
以下是清单:
02-13 15:19:58.878 14054-14054/facebookLog V/﹕ SessionOpen: ***
02-13 15:19:58.878 14054-14054/facebookLog V/﹕ PERMISSIONS: email
02-13 15:19:58.878 14054-14054/facebookLog V/﹕ PERMISSIONS: publish_actions
02-13 15:19:58.878 14054-14054/facebookLog V/﹕ PERMISSIONS: basic_info
02-13 15:19:59.154 14054-14054/facebookLog V/﹕ Return: GraphObject{graphObjectClass=GraphUser, state={"id":"1069060169776842","first_name":"Peter","timezone":7,"verified":true,"name":"Peter Javorek","locale":"sk_SK","link":"https:\/\/www.facebook.com\/app_scoped_user_id\/1069060169776842\/","last_name":"Javorek","gender":"male","updated_time":"2014-12-18T12:28:15+0000"}}
谢谢你的帮助
编辑:
在对其他FB帐户进行进一步测试后,我们注意到FB确实会在me请求中发送电子邮件,但它只会对某些帐户发送电子邮件,对于其他帐户,即使他们的个人资料中有电子邮件,它也不会发送电子邮件。是否有一些设置会影响这一点?无论如何,如果要处理此问题,以便我们也能为那些不正常发送给我们的帐户收到该电子邮件?您必须对电子邮件进行特殊的图形调用,它不在默认响应中,请参见此处的代码片段:
问题已被编辑。这不是我的代码的问题,而是我们在me请求中收到一些FB帐户的电子邮件时遇到的其他问题。在这种情况下,他们可能拒绝了电子邮件权限。