2014-06-19 3 views
0

hey i am Chaque aide de ce code pour obtenir le profil de facebook mais ca marche pas pour moi ... et je suis suivre ce tutoriel http://www.androidhive.info/2012/03/android-facebook-connect-tutorial/ je ne sais pas ce que le problème est le suivant s'il vous plaît aidez-moi.Obtenez Profil Facebook dans Android

public void getProfileInformation() { 
      mAsyncRunner.request("me", new RequestListener() { 
       @Override 
       public void onComplete(String response, Object state) { 

        Log.d("Profile", response); 
        String json = response; 
        try { 
         txt2.setText("testing 124"); 
         JSONObject profile = new JSONObject(json); 
         // getting name of the user 
         final String name = profile.getString("name"); 
         // getting email of the user 
         final String email = profile.getString("email"); 
         txt2.setText("Name: " +name+"Email: " +email); 
         runOnUiThread(new Runnable() { 

          @Override 
          public void run() { 
           Toast.makeText(getApplicationContext(), "Name: " + name + "\nEmail: " + email, Toast.LENGTH_LONG).show(); 

          } 

         }); 

        } catch (JSONException e) { 
         txt2.setText(e.toString()); 
         e.printStackTrace(); 
        } 
        logoutFromFacebook(); 
       } 

       @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) { 
       } 
      }); 
     } 

s'il vous plaît aidez-moi ce que dois-je faire ..

ces erreurs:

06-19 06:35:07.180: E/chromium(1759): [ERROR:gl_surface_egl.cc(153)] No suitable EGL configs found. 
06-19 06:35:07.180: E/chromium(1759): [ERROR:gl_surface_egl.cc(620)] GLSurfaceEGL::InitializeOneOff failed. 
06-19 06:35:07.200: E/chromium(1759): [ERROR:gl_surface_egl.cc(153)] No suitable EGL configs found. 
06-19 06:35:07.200: E/chromium(1759): [ERROR:gl_surface_egl.cc(620)] GLSurfaceEGL::InitializeOneOff failed. 
06-19 06:35:07.230: E/chromium(1759): [ERROR:gpu_info_collector.cc(86)] gfx::GLSurface::InitializeOneOff() failed 
06-19 06:35:12.470: E/chromium(1759): [ERROR:simple_backend_impl.cc(186)] File structure does not match the disk cache backend. 
06-19 06:35:12.470: E/chromium(1759): [ERROR:simple_backend_impl.cc(402)] Simple Cache Backend: wrong file structure on disk: /data/data/com.facebook.androidhive/app_webview/Cache 
06-19 06:36:38.000: E/chromium(1893): [ERROR:gl_surface_egl.cc(153)] No suitable EGL configs found. 
06-19 06:36:38.000: E/chromium(1893): [ERROR:gl_surface_egl.cc(620)] GLSurfaceEGL::InitializeOneOff failed. 
06-19 06:36:38.010: E/chromium(1893): [ERROR:gl_surface_egl.cc(153)] No suitable EGL configs found. 
06-19 06:36:38.010: E/chromium(1893): [ERROR:gl_surface_egl.cc(620)] GLSurfaceEGL::InitializeOneOff failed. 
06-19 06:36:38.010: E/chromium(1893): [ERROR:gpu_info_collector.cc(86)] gfx::GLSurface::InitializeOneOff() failed 
06-19 07:36:10.530: E/AndroidRuntime(2428): FATAL EXCEPTION: Thread-94 
06-19 07:36:10.530: E/AndroidRuntime(2428): Process: com.facebook.androidhive, PID: 2428 
06-19 07:36:10.530: E/AndroidRuntime(2428): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 
06-19 07:36:10.530: E/AndroidRuntime(2428):  at android.os.Handler.<init>(Handler.java:200) 
06-19 07:36:10.530: E/AndroidRuntime(2428):  at android.os.Handler.<init>(Handler.java:114) 
06-19 07:36:10.530: E/AndroidRuntime(2428):  at android.widget.Toast$TN.<init>(Toast.java:327) 
06-19 07:36:10.530: E/AndroidRuntime(2428):  at android.widget.Toast.<init>(Toast.java:92) 
06-19 07:36:10.530: E/AndroidRuntime(2428):  at android.widget.Toast.makeText(Toast.java:241) 
06-19 07:36:10.530: E/AndroidRuntime(2428):  at com.facebook.androidhive.AndroidFacebookConnectActivity$6.onComplete(AndroidFacebookConnectActivity.java:200) 
06-19 07:36:10.530: E/AndroidRuntime(2428):  at com.facebook.android.AsyncFacebookRunner$2.run(AsyncFacebookRunner.java:254) 
+0

utilisation API graphique facebook – Kishan

+0

ce qui est l'erreur ou l'exception que vous obtenez. –

+0

si je clique sur le bouton afin que l'application a été plantée .. –

Répondre

0

Comme quelqu'un mentionné dans les commentaires, vous devez utiliser Facebook Graph API, plus précisément, vous devez utiliser GraphUser avec un appel de Request.GraphUserCallback() { ... }

Utilisez le code suivant pour obtenir des informations de profil facebook. Assurez-vous que votre APP_ID est inclus dans les méta-données dans votre fichier AndroidManifest.xml

code:

private void onSessionStateChange(Session session, SessionState state, 
     Exception exception) { 
    if (state.isOpened()) { 
      Log.i(TAG, "Logged in..."); 

      /* 
      * When callback comes from facebook request user data from 
      * facebook and show the results. 
      */ 
      Request.newMeRequest(session, new Request.GraphUserCallback() { 

       @Override 
       public void onCompleted(GraphUser user, Response response) { 
        if (user != null) { 
         //Enter Code to retrieve information 


        } 

       } 
      }).executeAsync(); // If .executeAsync() is not called then the 
           // above code does not execute 
           // Async() executes in a parallel thread. 
    } else if (state.isClosed()) { 
     Log.i(TAG, "Logged out..."); 
    } 

} 

intérieur public void onCompleted(GraphUser user, Response respoonse) vous pouvez faire des demandes d'informations utilisateur comme ceci:

user.getId(); 
user.getName(); 
user.getBirthday(); 

Vous pouvez stocker ce informations dans des variables, ou passez-le à une autre activité via:

Log.w("myConsultant", 
       user.getId() + " " + user.getName() + " " 
             + user.getInnerJSONObject() + " " 
             + user.getLocation()); 
       i = new Intent(this, NewActivity.class); 
       i.putExtra("Fb_name", user.getName()); 
       i.putExtra("Fb_location", user.getLocation() 
           .getCity()); 
       i.putExtra("Fb_id", user.getId()); 

       Log.i(TAG, " FB USer info fetched"); 
       i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK); 
       startActivity(i); 

Vous pouvez ensuite appeler onSessionStateChange à l'intérieur onCreate() pour récupérer les informations de l'utilisateur lorsque l'activité est créée comme ceci:

Session session = Session.getActiveSession(); 
    if (session != null && (session.isOpened() || session.isClosed())) { 
     onSessionStateChange(session, session.getState(), null); 
    } 
+0

votre code ne fonctionne pas session est toujours nulle –

+0

Il pourrait être possible que vous ne sauvegardez pas votre session correctement? – AndyRoid

+0

Postez le reste de votre code dans une URL de corbeille pour que je puisse voir ce qui se passe – AndyRoid

Questions connexes