0

J'ai été en mesure de mettre en œuvre une connexion Facebook pour une application de réseautage social que je développe pour android. J'ai utilisé Facebook android SDK pour le faire, ainsi que d'obtenir le prénom/nom, le sexe et l'âge et de l'afficher sur une page de profil. Maintenant, je veux savoir comment je peux stocker cette information sur une base de données afin de l'afficher aux autres utilisateurs qui visitent le profil. Merci d'avance! Voici le code que j'utilise pour la page de profil.Comment stocker les informations de profil d'utilisateur Facebook sur une base de données à l'aide du Facebook sdk?

import android.content.Intent; 
import android.graphics.Typeface; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v7.widget.Toolbar; 
import android.util.TypedValue; 
import android.widget.ImageView; 
import android.widget.TextView; 
import com.facebook.AccessToken; 
import com.facebook.GraphRequest; 
import com.facebook.GraphResponse; 
import com.facebook.Profile; 
import com.squareup.picasso.Picasso; 
import org.json.JSONObject; 


public class ProfileActivity extends AppCompatActivity { 

    private Profile profile = Profile.getCurrentProfile(); 
    public ImageView profileActivityPicture; 
    public TextView nameFirst, nameLast, age, gend, user_location; 
    private String userID, email, gender, picture, birthday, name, city; 
    private String profilePicUrl; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_profile); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar2); 
     setSupportActionBar(toolbar); 
     if (getSupportActionBar() != null){ 
      getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
      getSupportActionBar().setDisplayShowHomeEnabled(true); 
      getSupportActionBar().setTitle("My Profile"); 
     } 
     nameFirst = (TextView) findViewById(R.id.profileActivityFirstName); 
     nameLast = (TextView) findViewById(R.id.profileActivityLastName); 
     age = (TextView) findViewById(R.id.profileActivityAge); 
     gend = (TextView) findViewById(R.id.profileActivityGender); 
     profileActivityPicture = (ImageView) findViewById(R.id.profileActivityPic); 
     user_location = (TextView) findViewById(R.id.profileActivityCity); 
     if(profile != null) { 
      nameFirst.setText(getString(R.string.hello_user, profile.getFirstName())); 
      nameLast.setText(getString(R.string.hello_user, profile.getLastName())); 
     } 

     nameFirst.setTextSize(TypedValue.COMPLEX_UNIT_SP,20); 
     nameFirst.setTypeface(null, Typeface.BOLD); 
     nameLast.setTextSize(TypedValue.COMPLEX_UNIT_SP,20); 
     nameLast.setTypeface(null, Typeface.BOLD); 

     GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(), 
       new GraphRequest.GraphJSONObjectCallback() { 
        @Override 
        public void onCompleted(
          JSONObject data, 
          GraphResponse response) { 
         try { 
          data = response.getJSONObject(); 
          if (data.has("id")) 
           userID = data.getString("id"); 
          if (data.has("name")) 
           name = data.getString("name"); 
          if (data.has("location")) 
           city = data.getJSONObject("location").getString("name"); 
           user_location.setText(city); 
           user_location.setTextSize(TypedValue.COMPLEX_UNIT_SP,14); 
          if (data.has("picture")) 
           Picasso.with(ProfileActivity.this).load("https://graph.facebook.com/" + userID+ "/picture?width=3000&height=4000").into(profileActivityPicture); 
          if (data.has("birthday")) 
           birthday = data.getString("birthday"); 
           age.setText(birthday); 
           age.setTextSize(TypedValue.COMPLEX_UNIT_SP,20); 
           age.setTypeface(null, Typeface.BOLD); 
          if (data.has("gender")) 
           gender = data.getString("gender"); 
           gend.setText(gender); 
           gend.setTextSize(TypedValue.COMPLEX_UNIT_SP,18); 
         } catch(Exception e) { 
          e.printStackTrace(); 
         } 
        } 
       }); 
     Bundle parameters = new Bundle(); 
     parameters.putString("fields", "id,name,email,gender,cover,picture.type(large),location"); 
     request.setParameters(parameters); 
     request.executeAsync(); 
    } 



    @Override 
    public boolean onSupportNavigateUp() { 
     onBackPressed(); 
     return true; 
    } 

    @Override 
    public void onBackPressed() { 
     Intent intent = new Intent(getApplicationContext(), MainActivity.class); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
     startActivity(intent); 
     finish(); 
    } 

    @Override 
    public void onDestroy(){ 
     super.onDestroy(); 
    } 
} 
+0

Lorsque vous obtenez les données de l'utilisateur de Facebook SDK et analyser cet objet json et enregistrer ce que vous voulez si elle est locale db ou sur le web. À quel problème faites-vous face? –

+0

Vous pouvez simplement analyser json et stocker où vous voulez .. –

+0

je veux l'enregistrer dans une base de données locale pour le moment que je travaille sur l'application. Je pensais à la base de données locale MySQL. –

Répondre

0

Lorsque vous obtenez une réponse en rappel complété simplement Parse comme celui-ci

JSONObject jobj = response.getJSONObject(); 

         if (jobj != null) { 
          try { 
           ProfileBean profileBean = new ProfileBean(); 
           profileBean.id = jobj.getString("id"); 
           profileBean.name = jobj.getString("name"); 
           profileBean.email = jobj.getString("email"); 
           profileBean.link = jobj.getString("link"); 
           profileBean.last_name = jobj.getString("last_name"); 
           profileBean.first_name = jobj.getString("first_name"); 
           profileBean.gender = jobj.getString("gender"); 

           JSONObject pic = jobj.getJSONObject("picture"); 
           JSONObject data = pic.getJSONObject("data"); 
           profileBean.profile_pic = data.getString("url"); 


          } catch (Exception e) { 
           // print exception 
          } 
         } 

ici les données FB sont stockées dans un ProfileBean donc comme cela, vous pouvez obtenir vos données ..

+0

Oui, je l'ai fait pour enregistrer les données utilisateur et les afficher sur une page de profil, mais que faire si je veux qu'un autre utilisateur affiche également ces informations de profil. –

+0

Pour cela, vous devez stocker ces données dans le stockage local. Pour cela vous pouvez utiliser Préférence partagée ou base de données locale n'importe qui .. Mais je vais préférer stocker les données dans la base de données locale .. –

+0

Quel type de base de données locale dois-je utiliser? MySQL? SQLite? –