web-dev-qa-db-fra.com

Partager du texte via Intent sur Facebook sans utiliser le kit de développement de Facebook

Comme Facebook n'autorise pas le partage de texte via Intention à moins que nous n'utilisions le kit de développement logiciel de Facebook, je cherche un moyen de le faire.

Je peux penser à 3 hacks que je peux utiliser:

1) Facebook autorisant le partage d'images, je peux générer un Bitmap avec du texte partagé dessiné dessus et partager l'image à l'aide de Intent.

2) Facebook autorise le partage d’URL, pour lequel il affiche également le Head de la page lors du partage. Je peux héberger une page dédiée sur mon serveur et passer des valeurs en tant que paramètre dans l'URL, et générer le Head qui l'utilise (je n'ai aucune expérience de php, mais j'imagine que c'est possible).

3) Copiez le texte dans le presse-papier et informez-en l'utilisateur.

OU

Utilisez des combinaisons des 3.

Est-ce que n'importe qui peut me suggérer un moyen bien meilleur de partager mon contenu sur Facebook sans utiliser le sdk de Facebook?

Merci d'avance.

30
Hemanth

Il est impossible de partager du texte seul sur Facebook avec Android shareIntent.

Cela n’est possible que via le SDK de Facebook à l’aide des fonctions de partage de liens.

Facebook ignore simplement le texte supplémentaire de l'intention s'il y a une image. Vous pouvez partager une image, mais cela ne vous permet pas de partager le contenu du texte.

Malheureusement, l'intention de partage de Facebook ne peut prendre qu'une seule URL avec le préfixe http: // et aucun message texte supplémentaire. En réalité, Facebook supprime le contenu du texte et n'autorise que les URL/liens. C'est par conception et nous n'avons aucun contrôle sur elle.

Cela fonctionnera

Intent sharingIntent = new Intent(Android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(Intent.EXTRA_TEXT, "http://www.google.com");
startActivity(Intent.createChooser(sharingIntent, "Share via"));

Cela ne fonctionnera pas.

Intent sharingIntent = new Intent(Android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(Intent.EXTRA_TEXT, "Share Text from App");
startActivity(Intent.createChooser(sharingIntent, "Share via"));

Seule l’approche que vous pouvez partager sur Facebook utilise Facebook SDK.

Liens de référence

intention de partage Android pour facebook- texte partagé ET lien

Impossible de partager du texte avec un lien via Android Intention de partage

intention de partage Android et Facebook

48
Ragu Swaminathan

Utilisez cette fonction, j'espère que cela vous aidera

public static void share(Context context, String text, String subject, String title, String dialogHeaderText) {
    Intent intent = new Intent(Android.content.Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Android.content.Intent.EXTRA_SUBJECT, subject);
    intent.putExtra(Android.content.Intent.EXTRA_TEXT, text);
    intent.putExtra(Intent.EXTRA_TITLE, title);
    context.startActivity(Intent.createChooser(intent, dialogHeaderText));
}
4
Hassan Jamil

Tout d'abord, pour partager du texte sur FB, vous devez utiliser FB SDK.

Sans FB SDK, la meilleure option consiste à choisir un site Web dédié contenant des données "OG", qui seront résolus automatiquement. Vous pouvez ainsi modifier vos données OG chaque fois que vous en avez besoin.

Je vous conseillerais de choisir votre numéro de piratage 2. Mais, avec cette approche, FB permet aux utilisateurs de cliquer sur le lien et de rediriger vers le site Web. Vous pouvez essayer de gérer cela en fonction de vos besoins.

J'espère que vous êtes clarifié avec cela.

Pour plus de détails sur OG, veuillez vérifier ceci Ouvrir les détails du graphique

4
Karthik Kumar

Ce code vous permet de coller votre contenu uniquement sur Facebook. ce que l’identifiant est d’obtenir la liste de toutes les applications présentes sur votre téléphone et de trouver l’application ouverte puis ouverte de Facebook si elle est déjà présente

        Intent shareIntent = new Intent(Android.content.Intent.ACTION_SEND);
        shareIntent.setType("text/plain");
        shareIntent.putExtra(Android.content.Intent.EXTRA_TEXT, "text to be shared");
        PackageManager pm = getPackageManager();
        List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);
        for (final ResolveInfo app : activityList) {
            if ((app.activityInfo.name).contains("facebook")) {
                final ActivityInfo activity = app.activityInfo;
                final ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name);
                shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
                shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                shareIntent.setComponent(name);
                startActivity(shareIntent);
                break;
           }
        }
3
Harsh Dev Chandel

Vérifiez ça :

Intent share=new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
share.putExtra(Intent.EXTRA_TEXT, "Some text you would like to share...");
share.setPackage("com.facebook.katana"); //Facebook App package
startActivity(Intent.createChooser(share, "Title of the dialog the system will open"));

Vous n'avez pas besoin de Facebook SDK avec ce code ......

Pour améliorer votre UX, vous pouvez vérifier si l’application Facebook (ou FacebookLite App) est bien installée ...

3
RRTW

Lorsque vous utilisez l'intention native, c'est l'application avec laquelle l'utilisateur partage si elle utilise les données à partir de l'intention ou non.

C'est un bogue connu et Facebook a créé ce bogue dans la liste de souhaits. Peut-être qu'ils n'essayent pas de le réparer. C’est intentionnel de faire en sorte que les gens utilisent FB SDK, je pense. référez-vous à ce lien http://forum.developers.facebook.net/viewtopic.php?id=939 et ceci post

http://forum.developers.facebook.net/viewtopic.php?id=939

0
bpr10