[英]Facebook android sdk login permission issue
我正在尝试从我的应用程序登录facebook
并获取用户详细信息。 我使用的是我自己的自定义按钮,而不是facebook sdk v3.5的Loginbutton
。 我的问题是,在单击按钮后,将显示“询问权限”对话框,该对话框应该供用户同意以获取访问详细信息(例如“朋友列表”,“电子邮件”等)的权限。 而是显示加载符号几秒钟,并直接转到下一个活动。 下面是我正在使用的代码。 我希望当用户单击登录按钮时出现权限对话框。 下面是我的代码
fbLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
loginToFb();
}
});
}
private void loginToFb() {
Session.openActiveSession(this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state,
Exception exception) {
if (session.isOpened()) {
final Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(
LandingPageActivity.this, Arrays.asList("user_location", "user_birthday", "user_likes", "email"));
session.requestNewReadPermissions(newPermissionsRequest);
// 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) {
fetchUserFbDetails(user);
Intent intent = new Intent(getApplicationContext(),
SignUpActivity.class);
startActivity(intent);
finish();
}
}
}
});
Request.executeBatchAsync(request);
}
}
});
}
尝试这个..
private void loginToFb() {
Session.openActiveSession(this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state,
Exception exception) {
if (session.isOpened()) {
try
{
Session.OpenRequest request = new Session.OpenRequest(this);
request.setPermissions(Arrays.asList("user_location", "user_birthday", "user_likes", "email"));
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
// 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) {
fetchUserFbDetails(user);
Intent intent = new Intent(getApplicationContext(),
SignUpActivity.class);
startActivity(intent);
finish();
}
}
}
});
Request.executeBatchAsync(request);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.