2015-08-20 1 views
0

для моего приложения Android я хотел интегрировать facebook логин, так что я сделал именно то, что здесь:
https://github.com/ParsePlatform/IntegratingFacebookTutorialParsefacebookUtils возвращающегося неправильных значений в Parse

Все, кажется, работает хорошо, однако значения, которые хранятся в разборе бэкенд не удобно, вот, например, что я получаю после авторизации с моей facebook счета: emailVerified: пусто
имя пользователя: adGdJMxcCQCAo2 .....
authData: { "facebook": { "access_token": "CAAMBDxU3HgUBAMYQ8q2mnjDqeKBz2sw. ..... "," expiration_date ":" ... "," id ":" 1015353 ... "}}

Извините, я все еще не могу загрузить фотографии. Это нормально?

я использую parseFacebookUtils 1.9.4 разобрана 1.9.4

+0

вы можете разместить код, так что я могу сказать вам, где вы делаете неправильно –

+0

то же самое здесь: (https://github.com/ParsePlatform/IntegratingFacebookTutorial/tree/master/IntegratingFacebookTutorial-Android/IntegratingFacebookTutorial) – Anas

+0

только версии differents, они используют 1.9.2, и я использую 1.9.4, спасибо – Anas

ответ

0

Это то, что я сделал для facebookparse.com логин

LoginFragment.java

private ParseLoginConfig config; 

@Override 
public View onCreateView(LayoutInflater inflater, 
     @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState, 1); 
    rootView = inflater.inflate(R.layout.layout_login, container, false); 
    config = ParseLoginConfig.fromBundle(getArguments(), getActivity()); 
    return rootView; 
} 

private void loginUsingFacebook() { 
    // TODO Auto-generated method stub 
    if (config.isFacebookLoginNeedPublishPermissions()) { 

     ParseFacebookUtils.logInWithPublishPermissionsInBackground(
       getActivity(), Arrays.asList("public_profile", "email"), 
       facebookLoginCallbackV4); 
    } else { 
     ParseFacebookUtils.logInWithReadPermissionsInBackground(
       getActivity(), Arrays.asList("public_profile", "email"), 
       facebookLoginCallbackV4); 
    } 
} 


private LogInCallback facebookLoginCallbackV4 = new LogInCallback() { 
    @Override 
    public void done(ParseUser user, ParseException e) { 
     if (isActivityDestroyed()) { 
      return; 
     } 

     if (user == null) { 
      loadingFinish(); 
      if (e != null) { 
       showToast(R.string.com_parse_ui_facebook_login_failed_toast); 
       debugLog(getString(R.string.com_parse_ui_login_warning_facebook_login_failed) 
         + e.toString()); 
      } 
     } else if (user.isNew()) { 
      GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(), 
        new GraphRequest.GraphJSONObjectCallback() { 
         @Override 
         public void onCompleted(JSONObject fbUser, 
           GraphResponse response) { 
          /* 
          * If we were able to successfully retrieve the 
          * Facebook user's name, let's set it on the 
          * fullName field. 
          */ 
          Log.e("facebook User", fbUser.toString()); 
          final ParseUser parseUser = ParseUser 
            .getCurrentUser(); 
          if (fbUser != null 
            && parseUser != null 
            && fbUser.optString("name").length() > 0) { 
           parseUser.put(USER_OBJECT_NAME_FIELD, 
             fbUser.optString("name")); 
           parseUser.put(USER_OBJECT_EMAIL_FIELD, 
             fbUser.optString("email")); 
           parseUser 
             .saveInBackground(new SaveCallback() { 
              @Override 
              public void done(
                ParseException e) { 
               if (e != null) { 
                debugLog(getString(R.string.com_parse_ui_login_warning_facebook_login_user_update_failed) 
                  + e.toString()); 
               } 
               ParseInstallation installation = ParseInstallation 
                 .getCurrentInstallation(); 
               installation 
                 .put(BaseFragment.INSTALLATION_UNIQUE_ID, 
                   parseUser 
                     .getUsername()); 
               installation 
                 .saveInBackground(); 
               loginSuccess(); 
              } 
             }); 
          } 
         } 
        }).executeAsync(); 
     } 
    } 
}; 

Примечание:Удалите тосты и сообщите мне, если есть какие-либо вопросы!

+0

эта часть выполняется также в UserDetailActivity.java:/ – Anas

+0

затем попробуйте с новым ключом facebook –

+0

Я думаю, что это объясняет проблему: ** Это связанные с новым обновлением API Facebook. При применении новых изменений конфиденциальности, когда пользователь одобряет приложение, вместо того, чтобы указывать на приложение идентификатор пользователя Facebook, создается и назначается идентификатор области приложения. Однако пользователи, которые утвердили приложение, предшествующее обновлению, продолжают получать свой собственный идентификатор facebook. Я не думаю, что синтаксический анализ обновил их браузер данных, чтобы продемонстрировать эти изменения, поскольку пользовательский идентификатор пользователя для приложения больше не является реальным идентификатором facebook. ** Я не знаю, как это решить: / – Anas