Android - Intégration Facebook

Android permet à votre application de se connecter à Facebook et de partager des données ou tout type de mises à jour sur Facebook. Ce chapitre traite de l'intégration de Facebook dans votre application.

Il existe deux façons d'intégrer Facebook et de partager quelque chose à partir de votre application. Ces moyens sont énumérés ci-dessous -

  • SDK Facebook
  • Partage d'intention

Intégrer le SDK Facebook

C'est la première façon de se connecter avec Facebook. Vous devez enregistrer votre application, puis recevoir un identifiant d'application, puis vous devez télécharger le SDK facebook et l'ajouter à votre projet. Les étapes sont énumérées ci-dessous:

Générer la signature de l'application

Vous devez générer une signature de clé, mais avant de la générer, assurez-vous que SSL est installé, sinon vous devez télécharger SSl. Il peut être téléchargé ici .

Maintenant, ouvrez l'invite de commande et redirigez vers votre dossier java jre. Une fois que vous y êtes, tapez cette commande exactement. Vous devez remplacer le chemin entre les virgules inversées par le chemin de votre keystore que vous pouvez trouver dans eclipse en sélectionnant l'onglet de la fenêtre et en sélectionnant l'onglet des préférences, puis en sélectionnant l'option de construction sous Android du côté gauche.

keytool -exportcert -alias androiddebugkey -keystore "your path" 
   | openssl sha1 -binary | openssl base64

Une fois que vous l'avez entré, vous serez invité à entrer le mot de passe. Donnez android comme mot de passe, puis copiez la clé qui vous est donnée. Il est montré dans l'image ci-dessous -

Enregistrer votre candidature

Créez maintenant une nouvelle application Facebook sur developer.facebook.com/apps et remplissez toutes les informations. Il est montré ci-dessous -

Maintenant, passez à la section de l'application Android native et remplissez votre projet et le nom de la classe et collez le hachage que vous avez copié à l'étape 1. Il est illustré ci-dessous

Si tout fonctionne correctement, vous recevrez un ID d'application avec le secret. Copiez simplement l'identifiant de l'application et enregistrez-le quelque part. Il est montré dans l'image ci-dessous -

Télécharger le SDK et l'intégrer

Téléchargez le sdk facebook ici . Importez ceci dans eclipse. Une fois importé, faites un clic droit sur votre projet Facebook et cliquez sur Propriétés.Cliquez sur Android, cliquez sur le bouton Ajouter et sélectionnez Facebook sdk comme projet.Cliquez sur OK.

Créer une application de connexion Facebook

Une fois que tout est terminé, vous pouvez exécuter les exemples fournis avec le SDK ou créer votre propre application. Pour vous connecter, vous devez appeleropenActiveSessionméthode et implémente son rappel. Sa syntaxe est donnée ci-dessous -

// start Facebook Login
Session.openActiveSession(this, true, new Session.StatusCallback() {
   
   // callback when session changes state
   public void call(Session session, SessionState state, Exception exception) {
      if (session.isOpened()) {
         // make request to;2 the /me API
         Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
            
            // callback after Graph API response with user object
            @Override
            public void onCompleted(GraphUser user, Response response) {
               if (user != null) {
                  TextView welcome = (TextView) findViewById(R.id.welcome);
                  welcome.setText("Hello " + user.getName() + "!");
               }
            }
         });
      }
   }
}

Partage d'intention

Le partage d'intention est utilisé pour partager des données entre des applications. Dans cette stratégie, nous ne traiterons pas le contenu du SDK, mais laissons l'application Facebook le gérer. Nous allons simplement appeler l'application facebook et transmettre les données à partager. De cette façon, nous pouvons partager quelque chose sur Facebook.

Android fournit une bibliothèque d'intentions pour partager des données entre les activités et les applications. Pour l'utiliser comme intention de partage, nous devons spécifier le type d'intention de partage àACTION_SEND. Sa syntaxe est donnée ci-dessous -

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);

La prochaine chose à faire est de définir le type de données à transmettre, puis de transmettre les données. Sa syntaxe est donnée ci-dessous -

shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Hello, from tutorialspoint");
startActivity(Intent.createChooser(shareIntent, "Share your thoughts"));

En dehors de ces méthodes, il existe d'autres méthodes disponibles qui permettent la gestion des intentions. Ils sont listés ci-dessous -

Sr. Non Méthode et description
1

addCategory(String category)

Cette méthode ajoute une nouvelle catégorie à l'intention.

2

createChooser(Intent target, CharSequence title)

Fonction pratique pour créer une intention ACTION_CHOOSER

3

getAction()

Cette méthode récupère l'action générale à effectuer, telle que ACTION_VIEW

4

getCategories()

Cette méthode retourne l'ensemble de toutes les catégories dans l'intention et l'événement de mise à l'échelle actuel

5

putExtra(String name, int value)

Cette méthode ajoute des données étendues à l'intention.

6

toString()

Cette méthode renvoie une chaîne contenant une description concise et lisible par l'homme de cet objet

Exemple

Voici un exemple illustrant l'utilisation d'IntentShare pour partager des données sur Facebook. Il crée une application de base qui vous permet de partager du texte sur Facebook.

Pour expérimenter cet exemple, vous pouvez l'exécuter sur un appareil réel ou dans un émulateur.

Pas La description
1 Vous utiliserez Android Studio pour créer une application Android sous un package com.example.sairamkrishna.myapplication.
2 Modifiez le fichier src / MainActivity.java pour ajouter le code nécessaire.
3 Modifiez le res / layout / activity_main pour ajouter les composants XML respectifs.
4 Exécutez l'application et choisissez un appareil Android en cours d'exécution, installez l'application dessus et vérifiez les résultats.

Voici le contenu du fichier d'activité principal modifié MainActivity.java.

package com.example.sairamkrishna.myapplication;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import android.widget.Button;
import android.widget.ImageView;

import java.io.FileNotFoundException;
import java.io.InputStream;

public class MainActivity extends AppCompatActivity {
   private ImageView img;

   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      img=(ImageView)findViewById(R.id.imageView);
      Button b1=(Button)findViewById(R.id.button);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            Intent sharingIntent = new Intent(Intent.ACTION_SEND);
            Uri screenshotUri = Uri.parse("android.
            resource://comexample.sairamkrishna.myapplication/*");
            
            try {
               InputStream stream = getContentResolver().openInputStream(screenshotUri);
            } catch (FileNotFoundException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
            }

            sharingIntent.setType("image/jpeg");
            sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
            startActivity(Intent.createChooser(sharingIntent, "Share image using"));
         }
      });
   }
}

Voici le contenu modifié du xml res/layout/activity_main.xml.

Dans le code ci-dessous abc indique le logo de tutorialspoint.com
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" 
   android:layout_width="match_parent"
   android:layout_height="match_parent" 
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" 
   tools:context=".MainActivity">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textView"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="30dp"
      android:text="Facebook share " />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials Point"
      android:id="@+id/textView2"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:textSize="35dp"
      android:textColor="#ff16ff01" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:layout_below="@+id/textView2"
      android:layout_centerHorizontal="true"
      android:src="@drawable/abc"/>
   
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Share"
      android:id="@+id/button"
      android:layout_marginTop="61dp"
      android:layout_below="@+id/imageView"
      android:layout_centerHorizontal="true" />
      
</RelativeLayout>

Voici le contenu de AndroidManifest.xml fichier.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
   </application>
</manifest>

Essayons d'exécuter votre application. Je suppose que vous avez connecté votre appareil mobile Android à votre ordinateur. Pour exécuter l'application à partir du studio Android, ouvrez l'un des fichiers d'activité de votre projet et cliquez sur l' icône Exécuter dans la barre d'outils. Avant de démarrer votre application, Android studio affichera la fenêtre suivante pour sélectionner une option dans laquelle vous souhaitez exécuter votre application Android.

Sélectionnez votre appareil mobile en option, puis vérifiez votre appareil mobile qui affichera votre écran par défaut -

Maintenant, appuyez simplement sur le bouton et vous verrez une liste de fournisseurs de partage.

Maintenant, sélectionnez simplement Facebook dans cette liste, puis écrivez n'importe quel message. Il est montré dans l'image ci-dessous -