당신이 app.if에 로그인하지 않고도 페이스 북에서 사용자 세부 정보를 얻으려는 경우 질문이 있다고 가정합니다. 그렇기 때문에 가능합니다. 페이 스북 (Facebook)에서 세부 사항을 얻는 것은 다른 과정이기 때문에 앱에 로그인하는 것은 다른 것입니다.
private Context context;
private Fragment mFragment;
private ShareDialog mShareDialog;
/**
* @param context
*/
public FacebookLoginManager(Context context, Fragment fragment) {
this.context = context;
this.mFragment = fragment;
}
/**
* @param context
*/
public FacebookLoginManager(Context context) {
this.context = context;
}
/**
* The purpose of this method is to initialize the facebook sdk
*
* @param callbackManager
*/
public void initializedFacebook(CallbackManager callbackManager) {
if (FacebookSdk.isInitialized()) {
performFacebookLogin(callbackManager);
} else {
FacebookSdk.sdkInitialize(getApplicationContext());
performFacebookLogin(callbackManager);
}
}
/**
* The purpose of this method is to initialize the facebook data from the server
*
* @param callbackManager
*/
private void performFacebookLogin(CallbackManager callbackManager) {
try {
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
final String accessToken = "" + loginResult.getAccessToken().getToken();
Log.e("accessToken", accessToken);
GraphRequest request = GraphRequest.newMeRequest(
AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
try {
final FacebookResponseBean mFacebookResponseBean = new FacebookResponseBean();
if (object != null) {
if (object.has(FacebookConstants.ID) && object.get(FacebookConstants.ID) != null) {
mFacebookResponseBean.setUserId(object.get(FacebookConstants.ID) + "");
}
if (object.has(FacebookConstants.NAME) && object.get(FacebookConstants.NAME) != null) {
mFacebookResponseBean.setName(object.get(FacebookConstants.NAME) + "");
}
if (object.has(FacebookConstants.EMAIL) && object.get(FacebookConstants.EMAIL) != null) {
mFacebookResponseBean.setEmail(object.get(FacebookConstants.EMAIL) + "");
}
if (object.has(FacebookConstants.GENDER) && object.get(FacebookConstants.GENDER) != null) {
mFacebookResponseBean.setGender(object.get(FacebookConstants.GENDER) + "");
}
if (object.has(FacebookConstants.BIRTHDAY) && object.get(FacebookConstants.BIRTHDAY) != null) {
mFacebookResponseBean.setBirthday(object.get(FacebookConstants.BIRTHDAY) + "");
}
if (object.has(FacebookConstants.AGE_RANGE) && object.get(FacebookConstants.AGE_RANGE) != null) {
mFacebookResponseBean.setAgerange(object.get(FacebookConstants.AGE_RANGE) + "");
}
if (object.has(FacebookConstants.TIMEZONE) && object.get(FacebookConstants.TIMEZONE) != null) {
mFacebookResponseBean.setTimezone(object.get(FacebookConstants.TIMEZONE) + "");
}
if (object.has(FacebookConstants.VERIFIED) && object.get(FacebookConstants.VERIFIED) != null) {
mFacebookResponseBean.setVerified(object.get(FacebookConstants.VERIFIED) + "");
}
if (object.has(FacebookConstants.UPDATED_TIME) && object.get(FacebookConstants.UPDATED_TIME) != null) {
mFacebookResponseBean.setUpdatedtime(object.get(FacebookConstants.UPDATED_TIME) + "");
}
if (object.has(FacebookConstants.LOCALE) && object.get(FacebookConstants.LOCALE) != null) {
mFacebookResponseBean.setLocale(object.get(FacebookConstants.LOCALE) + "");
}
if (object.has(FacebookConstants.FIRST_NAME) && object.get(FacebookConstants.FIRST_NAME) != null) {
mFacebookResponseBean.setFirstName(object.get(FacebookConstants.FIRST_NAME) + "");
}
if (object.has(FacebookConstants.LAST_NAME) && object.get(FacebookConstants.LAST_NAME) != null) {
mFacebookResponseBean.setLastName(object.get(FacebookConstants.LAST_NAME) + "");
}
if (object.has(FacebookConstants.PICTURE) && object.get(FacebookConstants.PICTURE) != null) {
JSONObject picture = object.getJSONObject(FacebookConstants.PICTURE);
JSONObject data = picture.getJSONObject("data");
if (data.has("url") && data.get("url") != null) {
mFacebookResponseBean.setPhotolink(data.get("url") + "");
Logger.error("image", data.get("url") + "");
}
}
}
if (context instanceof LoginActivity) {
((LoginActivity) context).setFaceBookResponse(mFacebookResponseBean);
} else if (context instanceof RegistrationActivity) {
((RegistrationActivity) context).setFaceBookResponse(mFacebookResponseBean);
} else if (context instanceof UserProfileActivity) {
((UserProfileActivity) context).setFaceBookResponse(mFacebookResponseBean);
} else if (mFragment != null && mFragment instanceof FragmentLinkAccounts) {
((FragmentLinkAccounts) mFragment).setFaceBookResponse(mFacebookResponseBean);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", FacebookConstants.PERMISSION);
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException exception) {
exception.printStackTrace();
if (exception instanceof FacebookAuthorizationException) {
if (AccessToken.getCurrentAccessToken() != null) {
LoginManager.getInstance().logOut();
}
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* The purpose of this method is to share the image and content on facebook
*
* @param activity
* @param manager
* @param image
* @param isShareRequest
* @param id
*/
public void shareContent(final Activity activity, CallbackManager manager, View image, final boolean isShareRequest, int id) {
mShareDialog = new ShareDialog(activity);
String time = GlobalAcess.getDateTime();
mShareDialog.registerCallback(manager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
if (isShareRequest)
ToastMessage.getInstance(activity).showLongMessage(activity.getString(R.string.msg_request_posted));
else
ToastMessage.getInstance(activity).showLongMessage(activity.getString(R.string.msg_trip_posted));
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
error.printStackTrace();
}
});
String url = "";
if (isShareRequest) {
url = NetworkConstants.SHARE_REQUEST_URL + "id=" + id + "?t=" + time;
} else {
url = NetworkConstants.SHARE_TRIP_URL + "id=" + id + "?t=" + time;
}
if (ShareDialog.canShow(ShareLinkContent.class)) {
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse(url))
.build();
mShareDialog.show(content);
}
}
} 는
당신은 질문에 대한 자세한 내용을 추가 할 수 있습니다 //? – WhatsThePoint
로그인하지 않고 사용자 데이터 없음 – luschn