2014-10-16 152 views
0

我有非常奇怪的situetion。我正在工作在Android的Facebook的SDK。我寫的登錄代碼,也可以檢查用戶名和用戶id.but這個代碼不工作時divice HASE Facebook應用程序(我卸載它,然後努力完善) 這是我的代碼android獲取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

啓用客戶深層鏈接,單點登錄和提前標籤的OAuth登錄從devlopers.facebook.com

+0

我不明白你it.can分享更多的信息? – viviano 2014-10-16 12:30:09

+0

您必須在developers.facebook.com上註冊您的應用程序...如果不是那麼您必須在那裏註冊您的Android應用程序。它也會問你的SHA KEY ....它已經寫在那裏如何得到SHA – ashutiwari4 2014-10-16 12:31:45

+0

是的,我在developer.facebok.com上註冊了我的應用程序我的應用程序只在工作時沒有安裝facebook應用程序 – viviano 2014-10-16 12:34:34

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 2014-10-16 13:34:01

+0

這是一個從服務器提供數據的函數。 – 2014-10-16 13:59:00

+0

創建方法與我們在json解析中從服務器獲取數據一樣。 – 2014-10-16 13:59:37