2017-12-21 1 views
-1

전체 골격 이렇게되면 개발하고 안드로이드 앱 사용자를 요청하지 않고 FB 사용자 정보에 액세스 할 수 또는 이미 존재하는 로그인 사용자가 SQLite로갑니다. 나중에 사용자 프로필을 통해 데이터를 가져오고 싶습니다. 가능한가?내가 응용 프로그램이 열립니다 <p>이,하자</p> 등록 할 수있는 새로운 사용자도 로그인에에 내가 응용 프로그램의

나는 이걸 찾고있다 AccessToken Fb가 제공하는 물건이지만 내 머리 위로 모든 것이 흐른다.

처음에 사용자가 등록하여 로그인한다고 가정 해 보겠습니다. 나중에 사용자가 검색 할 내용을 입력하게하고 Facebook에서 검색 결과를 가져오고 싶다면 해당 검색 결과는 이어야하며은 사용자 프로필에서 가져와야합니다. 이 모든 것들은 사용자가 Fb 세부 정보를 수동으로 입력하지 않아도 발생해야합니다. 오히려 그는 이라는 팝업 대화 상자를 보게 될 것입니다. Fb 로그인 뭔가를 계속하십시오.

+0

당신은 질문에 대한 자세한 내용을 추가 할 수 있습니다 //? – WhatsThePoint

+0

로그인하지 않고 사용자 데이터 없음 – luschn

답변

0

페이스 북 사용자는 페이스 북에서 생성 된 액세스 토큰으로 액세스 만합니다. 먼저 개발자 계정을 만들고 개발자 계정으로 앱을 만들어야합니다. 앱 ID와 키는 앱을 만든 후 Facebook 개발자 계정에서 얻을 수있는 Android 앱을 넣어야합니다. 자세한 내용은 공식 문서를 확인하십시오.

0

당신이 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); 
    } 

} 

} 는

+0

// 페이 스북으로 전화 걸기 방법 CallbackManager mCallbackManager = CallbackManager.Factory.create(); 새로운 FacebookLoginManager (this, fragment) .initializedFacebook (mCallbackManager); 의존성 단계 절차에 의해 단계 https://developers.facebook.com/docs 여기에서보고 될 수 Gradle을 컴파일 'com.facebook.android:facebook-android-sdk:4.25.0'에 추가 될/facebook-login/android / – Amardeep

관련 문제