2 votes

Erreur manifeste de la photo OGraph de Facebook avec Android

Je suis confronté à un problème lors du partage d'un contenu Facebook OpenGraph dans mon application. J'ai lu attentivement la page du développeur de Facebook qui est bien documentée mais j'ai toujours cette erreur ...

Voici mon code :

private void facebookShareWithOpenGraph(final SmartRunFirebase aSmartRun, final StatisticSmartRun stats){

    SharePhoto photo = new SharePhoto.Builder()
            .setBitmap(aSmartRun.getAffectedCity().getCityPicture())
            .setUserGenerated(true)
            .build();

    ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
            .putString("og:type", "fitness.course")
            .putString("og:title", aSmartRun.getName())
            .putString("og:description", aSmartRun.getDescription())
            .putPhoto("og:image", photo)
            .putInt("fitness:duration:value", stats.getChronoInSecond())
            .putString("fitness:duration:units", "s")
            .putDouble("fitness:distance:value", (double) stats.getTravelledDistance()/1000)
            .putString("fitness:distance:units", "km")
            .putDouble("fitness:speed:value", statCalculator.parseInMeterPerSecond(stats.getMediumSpeed()))
            .putString("fitness:speed:units", "m/s")
            .build();
    ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
            .setActionType("fitness.runs")
            .putObject("fitness:course", object)
            .build();
    ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
            .setPreviewPropertyName("fitness:course")
            .setAction(action)
            .build();

   // ShareDialog.show(StatsSmartRunsActivity.this, content);
    // initiate share process
    ShareDialog shareDialog = new ShareDialog(this);
    shareDialog.show(content);

}

Et dans mon manifeste

<provider android:authorities="com.facebook.app.FacebookContentProviderXXXXXXXAppID"
    android:name="com.facebook.FacebookContentProvider"
    android:exported="true" />

Sans ajouter l'image avec .putPhoto, tout va bien. Mais quand je l'ajoute, j'ai un crash à la ligne shareDialog.show(content) ; :

java.lang.IllegalStateException: A ContentProvider for this app was not set up in the AndroidManifest.xml, please add com.facebook.app.FacebookContentProviderXXXXXXXX as a provider to your AndroidManifest.xml file. See https://developers.facebook.com/docs/sharing/android for more info.

Comment cela est-il possible ? C'est écrit dans mon Manifeste ! Et comment pourrais-je partager mon OpenGraph sans Picture si mon fournisseur n'était pas correctement défini comme il est dit ?

Merci beaucoup d'avance :)

0voto

GrayFox Points 315

Oookay alors ...

Je n'ai pas mis le fournisseur au bon endroit dans le fichier XML.

Il doit être à l'intérieur de la fourchette d'application et non à l'extérieur... !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X