Facebook android sdk 登录权限问题
Posted
技术标签:
【中文标题】Facebook android sdk 登录权限问题【英文标题】:Facebook android sdk login permission issue 【发布时间】:2013-10-24 06:58:28 【问题描述】:我正在尝试从我的应用程序登录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);
);
【问题讨论】:
如果您已经提供了访问权限,该提示将再次被机器人打开。 没有。它根本不会来。即使是第一次。 添加了答案.. 尝试一下 【参考方案1】:试试这个..
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);
【讨论】:
以上是关于Facebook android sdk 登录权限问题的主要内容,如果未能解决你的问题,请参考以下文章
在 PHP 的服务器端使用 facebook SDK 验证/验证 android 应用程序的用户访问权限?
如果应用程序已经授权 facebook sdk android 应用程序,则不显示权限窗口
Facebook SDK 3.8:未返回权限 publish_actions
Swift:Facebook SDK,成功登录后检查丢失的权限