使用Facebook sdk 3.1 for Android无法获得Facebook好友
在我的android应用程序中,Facebook好友通过单击按钮加载。我使用以下功能获取Facebook好友。但是,如果用户未授予发布权限,我将无法获取Facebook好友。会话将关闭。\u登录\u在授予发布权限后失败。如果发布权限已加载Facebook好友在列表视图中。我的代码有什么问题。请帮助我。提前感谢使用Facebook sdk 3.1 for Android无法获得Facebook好友,android,facebook,Android,Facebook,在我的android应用程序中,Facebook好友通过单击按钮加载。我使用以下功能获取Facebook好友。但是,如果用户未授予发布权限,我将无法获取Facebook好友。会话将关闭。\u登录\u在授予发布权限后失败。如果发布权限已加载Facebook好友在列表视图中。我的代码有什么问题。请帮助我。提前感谢 private boolean hasPublishPermission() { Session session = Session.getActiveSession();
private boolean hasPublishPermission() {
Session session = Session.getActiveSession();
return session != null
&& session.getPermissions().contains("publish_stream");
}
private void getFacebookFriends(final Session session) {
Session msession = session;
if (msession.isOpened()) {
if (!hasPublishPermission()) {
if (progressDlg != null) {
progressDlg.dismiss();
}
msession.requestNewPublishPermissions(new NewPermissionsRequest(
FindFriendsActivity.this, PERMISSIONS));
} else {
if (progressDlg != null) {
progressDlg.dismiss();
}
Request friendRequest = Request.newMyFriendsRequest(msession,
new GraphUserListCallback() {
public void onCompleted(List<GraphUser> users,
Response response) {
fbfrndsDetails.clear();
isfindFriendsFromFB = false;
ArrayList<FriendsFinderRequest> data = new ArrayList<FriendsFinderRequest>();
for (int i = 0; i < users.size(); i++) {
Log.d("name", "" + users.get(i).toString());
FriendsDetails fbfrndDetail = new FriendsDetails();
JSONObject jobj;
try {
jobj = users.get(i)
.getInnerJSONObject();
Log.e("name",
"" + jobj.getString("name"));
Log.e("id", "" + jobj.getString("id"));
JSONObject ob = jobj
.getJSONObject("picture");
JSONObject obj = ob
.getJSONObject("data");
} catch (Exception e1) {
e1.printStackTrace();
}
}
if (progressDlg != null) {
progressDlg.dismiss();
}
}
});
Bundle params = new Bundle();
params.putString("fields", "id,name,picture");
friendRequest.setParameters(params);
friendRequest.executeAsync();
}
} else {
if (progressDlg != null) {
progressDlg.dismiss();
}
Session.OpenRequest openRequest = null;
openRequest = new Session.OpenRequest(FindFriendsActivity.this);
if (openRequest != null) {
openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS);
if (!hasPublishPermission()) {
openRequest.setPermissions(PERMISSIONS);
}
if (session.getState() == SessionState.CLOSED_LOGIN_FAILED) {
Session.setActiveSession(null);
msession = new Session(FindFriendsActivity.this);
Session.setActiveSession(msession);
msession.openForPublish(openRequest);
} else {
session.openForPublish(openRequest);
}
}
}
}
private void onSessionStateChange(Session session, SessionState state,
Exception exception) {
if (state.isOpened()) {
if (isfindFriendsFromFB) {
rootLayout.setVisibility(View.GONE);
progressDlg = ProgressDialog.show(FindFriendsActivity.this, "",
"Please wait");
Request friendRequest = Request.newMyFriendsRequest(session,
new GraphUserListCallback() {
public void onCompleted(List<GraphUser> users,
Response response) {
isfindFriendsFromFB = false;
ArrayList<FriendsFinderRequest> data = new ArrayList<FriendsFinderRequest>();
for (int i = 0; i < users.size(); i++) {
Log.d("name", "" + users.get(i).toString());
FriendsDetails fbfrndDetail = new FriendsDetails();
JSONObject jobj;
try {
jobj = users.get(i)
.getInnerJSONObject();
Log.e("name",
"" + jobj.getString("name"));
Log.e("id", "" + jobj.getString("id"));
JSONObject ob = jobj
.getJSONObject("picture");
JSONObject obj = ob
.getJSONObject("data");
} catch (Exception e1) {
e1.printStackTrace();
}
}
if (progressDlg != null) {
progressDlg.dismiss();
}
}
});
Bundle params = new Bundle();
params.putString("fields", "id,name,picture");
friendRequest.setParameters(params);
friendRequest.executeAsync();
}
} else if (state.isClosed()) {
if (progressDlg != null) {
progressDlg.dismiss();
}
}
}
private boolean hasPublishPermission(){
Session=Session.getActiveSession();
返回会话!=null
&&session.getPermissions()包含(“发布流”);
}
private void getFacebookFriends(最终会话){
会话msession=会话;
if(msession.isOpened()){
如果(!hasPublishPermission()){
if(progressDlg!=null){
progressDlg.discouse();
}
msession.requestNewPublishPermissions(新建权限请求(
FindFriendsActivity.this,PERMISSIONS));
}否则{
if(progressDlg!=null){
progressDlg.discouse();
}
Request-friendsrequest=Request.newMyFriendsRequest(msession,
新的GraphUserListCallback(){
未完成公共作废(列出用户,
回应(回应){
fbfrndsDetails.clear();
IsFindFromfB=false;
ArrayList数据=新的ArrayList();
对于(int i=0;i