2014-10-16 2 views
0

У меня очень странная ситуация. Я работаю в facebook sdk в android. я написал код для входа, а также может проверить имя пользователя и пользователь id.but этот код не работает, когда divice Hase facebook приложение (я удалил его, а затем работал идеально) это мой кодandroid get facebook имя пользователя и номер

public void LoginFacebook() { 

    mFacebook.authorize(this, mPermissions, new LoginDialogListener()); 

} 

private final class LoginDialogListener implements DialogListener { 

    public void onComplete(Bundle values) { 
     SessionStore.save(mFacebook, getApplicationContext()); 

     getProfileInformation(); 

    } 

    public void onCancel() { 
     SessionEvents.onLoginError("Action Canceled"); 
    } 

    @Override 
    public void onFacebookError(FacebookError error) { 
     SessionEvents.onLoginError(error.getMessage()); 

    } 

    @Override 
    public void onError(DialogError error) { 
     SessionEvents.onLoginError(error.getMessage()); 

    } 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 


} 

@SuppressLint("SdCardPath") 
public void getProfileInformation() { 

    mAsyncRunner.request("me", new BaseRequestListener() { 

     @SuppressLint("CommitPrefEdits") 
     @Override 
     public void onComplete(String response, Object state) { 

      final String json = response; 

      runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 

        try { 

         JSONObject profile = new JSONObject(json); 
         facebook_userid = profile.getString("id"); 
         facebook_username = profile.getString("name"); 
         facebook_username = facebook_username.replace(
           "%20", " "); 

         editor.putString("fb_name", facebook_username); 

         editor.putString("fb_id", facebook_userid); 

         fb_name.setText(facebook_username); 

         getFacebookAvatar(facebook_userid); 
         editor.commit(); 
        } catch (JSONException e) { 

         e.printStackTrace(); 
        } 

       } 
      }); 

     } 

     @Override 
     public void onIOException(IOException e, Object state) { 
     } 

     @Override 
     public void onFileNotFoundException(FileNotFoundException e, 
       Object state) { 
     } 

     @Override 
     public void onMalformedURLException(MalformedURLException e, 
       Object state) { 
     } 

     @Override 
     public void onFacebookError(FacebookError e, Object state) { 
     } 
    }); 
} 

я понятия не имею, что не так. если кто-нибудь знает решение, пожалуйста, помогите мне спасибо

ответ

1

Enable Client Deep Linking, Single Sign On и заранее закладки OAuth Вход с devlopers.facebook.com

+0

я не понимаю it.Can вы разделяете больше информации? – viviano

+0

Вы, должно быть, зарегистрировали свое приложение на developers.facebook.com ... ЕСЛИ тогда вам не нужно регистрировать свое приложение для Android. он также попросит ваш SHA KEY .... Он написал там, как получить SHA – ashutiwari4

+0

да, я зарегистрировал свое приложение на developer.facebok.com мое приложение работает только тогда, когда в div не установлено приложение facebook – viviano

0

Вы можете сделать как это.

public static void getuserdata() throws JSONException { 
    String Facebook = readT("https://graph.facebook.com/me?access_token="+mFacebook.getAccessToken()+"&fields=id,username)".replace(" ","%20")); 
    try 
    { 
     JSONObject jsonobj = new JSONObject(Facebook); 
     fb_id = jsonobj.getString("id"); 
     fb_username = fb_fname+" "+fb_lname; 
     Log.e("..fb_username..........", fb_username); 
    } 
    catch (JSONException e) 
    { 
     e.printStackTrace(); 
    } 

}

+0

Что такое readT? @aydroider \ – viviano

+0

Это функция, которая дает вам данные с сервера. –

+0

Создайте метод, как мы это делаем в json-синтаксическом анализе, чтобы получить данные с сервера. –

Смежные вопросы