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 :)