Android 在facebook sdk集成中获取空电子邮件地址
使用FacebookSDK 3.0版&以下是我的代码。我每次都会获取id和name值,但电子邮件地址为空Android 在facebook sdk集成中获取空电子邮件地址,android,email,null,facebook-sdk-3.0,Android,Email,Null,Facebook Sdk 3.0,使用FacebookSDK 3.0版&以下是我的代码。我每次都会获取id和name值,但电子邮件地址为空 authButton.setReadPermissions(Arrays.asList("basic_info","email")); // session state call back event authButton.setSessionStatusCallback(new
authButton.setReadPermissions(Arrays.asList("basic_info","email"));
// session state call back event
authButton.setSessionStatusCallback(new
Session.StatusCallback() {
@Override
public void call(Session session,
SessionState state,
Exception exception) {
if (session.isOpened()) {
Log.i(TAG,"Access Token"+ session.getAccessToken());
Request.newMeRequest(session,
new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user,Response response) {
if (user != null) {
Log.i(TAG,"User ID "+ user.getId());
Log.i(TAG,"Email "+ user.asMap().get("email"));
}
}
}).executeAsync();
}
}
});
无需将权限设置为单独的读取权限
Session.OpenRequest openRequest = new Session.OpenRequest(LandingPageActivity.this);
openRequest.setPermissions(Arrays.asList...);
openRequest.setCallback(new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state,
Exception exception) {
if (session.isOpened()) {
// make request to the /me API
Request request = Request.newMeRequest(session,
new Request.GraphUserCallback() {
// callback after Graph API response with user
// object
@Override
public void onCompleted(GraphUser user,
Response response) {
if (user != null) {
string email= user.getProperty("email");
}
}
});
request.executeAsync();
}
});
Session session = new Session(LandingPageActivity.this);
Session.setActiveSession(session);
session.openForRead(openRequest);
参考: