2011-10-11 75 views
2

我在我的应用程序中使用单点登录(http://developers.facebook.com/docs/mobile/android/build/)。它似乎在模拟器上正常工作(我成功登录并获取access_token)。但在我的Nexus S中,webview显示,但我总是“登录失败”。Facebook sdk(单一登录)没有在设备上工作

有我的代码:

((Button)findViewById(R.id.BtnFacebook)).setOnClickListener(new OnClickListener(){ 

     public void onClick(View v) { 

      //startActivity(intentLoginFacebook); 

      facebook.authorize(Login.this, new String[] {"user_about_me","user_activities","user_birthday","user_education_history","user_events","user_groups","user_hometown","user_interests","user_likes","user_location","user_religion_politics","user_status","user_website","user_work_history","read_requests","read_stream","friends_events","email","create_event","manage_friendlists","offline_access","rsvp_event"}, new DialogListener() { 
       @Override 
       public void onComplete(Bundle values) { 

        String id = ""; 
        String access_token = facebook.getAccessToken(); 
        System.out.println("ACCESSTOKENNNN:" + access_token); 

        try { 
         String response = facebook.request("me"); 

         JSONObject obj = new JSONObject(response); 
         id = obj.getString("id"); 
         System.out.println("response: "+response); 

        } catch (IOException ex) { 
         Log.d("Facebook", ex.getMessage()); 
        } catch (Exception e) { 
         Log.d("Facebook", e.getMessage()); 
        } 


        //Verification du login/password 
        new LoginFacebook().execute(id,access_token); 
        System.out.println("IDDDDDDDD:" + id);    

       } 

       @Override 
       public void onFacebookError(FacebookError error) { 
        Toast.makeText(getApplicationContext(), "Facebook error: login failed", Toast.LENGTH_LONG).show(); 

       } 

       @Override 
       public void onCancel() { 
       } 

       @Override 
       public void onError(DialogError e) { 
        // TODO Auto-generated method stub 
        Toast.makeText(getApplicationContext(), "Login failed", Toast.LENGTH_LONG).show(); 

       } 
      }); 

     } 
      }); 

感谢您的帮助!

+0

清除浏览器Cookie和运行应用程序用干净的构建项目 –

+0

没有工作.... – user420574

+0

@ user420574你能解释一下如何ü创建哈希键..问题会with Hash Key .. – Venky

回答

0

很有可能SDK会将您的access_token和expires_in参数存储在SharedPreferences中。您需要记录详细的错误。如果您在API调用中遇到OAuth异常,则需要从SharedPreferences中删除access_token,然后重新授权。

希望这有助于再次

+0

SDK不在SharedPreferences中存储access_token .. – user420574

相关问题