Facebook OGraph 照片清单错误 Android
Facebook OGraph photo manifest error with Android
我在我的应用程序中共享 Facebook OpenGraph 内容时遇到问题。我仔细阅读了 Facebook 开发人员页面,该页面有详细记录,但我仍然遇到此错误...
这是我的代码:
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);
}
在我的清单中
<provider android:authorities="com.facebook.app.FacebookContentProviderXXXXXXXAppID"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />
不使用 .putPhoto 添加图片一切正常。但是当我添加它时,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.
这怎么可能?它写在我的清单中!如果我的提供者没有像所说的那样正确定义,我怎么能在没有图片的情况下共享我的 OpenGraph?
非常感谢您:)
好吧...
我没有将提供程序放入 XML 文件中的正确位置。
它必须在申请范围内而不是在...之外...!
我在我的应用程序中共享 Facebook OpenGraph 内容时遇到问题。我仔细阅读了 Facebook 开发人员页面,该页面有详细记录,但我仍然遇到此错误...
这是我的代码:
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);
}
在我的清单中
<provider android:authorities="com.facebook.app.FacebookContentProviderXXXXXXXAppID"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />
不使用 .putPhoto 添加图片一切正常。但是当我添加它时,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.
这怎么可能?它写在我的清单中!如果我的提供者没有像所说的那样正确定义,我怎么能在没有图片的情况下共享我的 OpenGraph?
非常感谢您:)
好吧...
我没有将提供程序放入 XML 文件中的正确位置。
它必须在申请范围内而不是在...之外...!