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()) {
// make request to the /me API
List<String> permissions = session.getPermissions();
if (!isSubsetOf(PERMISSIONS, permissions)) {
pendingPublishReauthorization = true;
Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(
RegisterActivity.this, PERMISSIONS);
session.requestNewReadPermissions(newPermissionsRequest);
return;
}
Request.executeMeRequestAsync(session,
new Request.GraphUserCallback() {
// callback after Graph API response with
// user object
@Override
public void onCompleted(GraphUser user,
Response response) {
if (user == null) {
Toast.makeText(
RegisterActivity.this
.getApplicationContext(),
"Facebook Error",
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(
RegisterActivity.this
.getApplicationContext(),
user.getName()
+ " Logged in Successfully.",
Toast.LENGTH_LONG).show();
GraphUser abc = user;
id = user.getId();
name = user.getName();
gender = user.getProperty("gender")
.toString();
editname.setText(name);
username.setText(user.getUsername());
JSONObject jo = user
.getInnerJSONObject();
Log.d("Details", jo.toString());
try {
emailid.setText(user
.getProperty("email")
.toString());
} catch (Exception e1) {
// TODO Auto-generated catch
// block
e1.printStackTrace();
}
try {
location = user.getLocation()
.getProperty("name")
.toString();
} catch (Exception e) {
e.printStackTrace();
}
}
return;
}
});
}
}
});
onActivityResult를 방법
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode,
resultCode, data);
}
isSubsetoff() 방법
private boolean isSubsetOf(Collection<String> subset,
Collection<String> superset) {
for (String string : subset) {
if (!superset.contains(string)) {
return false;
}
}
return true;
}
과 권한을 넣어 귀하의 필요에 따라
private static final List<String> PERMISSIONS = Arrays.asList("email",
"user_about_me", "user_location", "user_checkins");
페이스 북의 응용 프로그램에서 딥 링크 및 페이스 북 로그인을 활성화 했습니까? –
그리고 같은 시스템에서 설치되었거나 다른 앱이 설치되어 있습니까? –
실제로, 정확한 단어로 입력 할 수 없습니다. developers.facebook.com에 새 앱을 등록했으며 새로 만든 앱의 app-id를 내 안드로이드 앱 코드에 사용하고 있습니다. 내 안드로이드 애플 리케이션에서 페이 스북 로그인 시설을 사용하고 싶습니다 ... – tigerden