在Facebook android SDK中发布来自本地ShareDialog的照片

时间:2014-01-20 06:29:07

标签: android facebook facebook-android-sdk

我正在尝试使用SDK v3.6 ShareDialog将图像发布到Facebook。

结果我得到了com.facebook.FacebookException:检索图像附件时出错。

我就像Doc说的那样:

    private void ShareDialog(){
    OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);
    //action.setProperty("game", "https://example.com/cooking-app/meal/Lamb-Vindaloo.html");

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon); 
    List<Bitmap> images = new ArrayList<Bitmap>();
    images.add(bitmap);

    FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(this, action, "cooking-app:cook", "game")
            .setImageAttachmentsForAction(images, true)
            .build();
    uiHelper.trackPendingDialogCall(shareDialog.present());
}

我知道我需要在AndroidManifest.xml中添加<provider android:authorities="com.facebook.app.NativeAppCallContentProvider{Facebook-app-id}" android:name="com.facebook.NativeAppCallContentProvider" />,但是当我这样做时,会出现错误代码,Multiple annotations found at this line: - Tag <provider> attribute authorities has invalid character '{'. - Exported content providers can provide access to potentially sensitive data

如何正确添加提供商?

2 个答案:

答案 0 :(得分:5)

provider定义中,{Facebook-app-id},您必须填写Facebook提供的应用ID。

答案 1 :(得分:3)

将内容提供商添加到您的清单。

 <provider
        android:name="com.facebook.NativeAppCallContentProvider"
        android:authorities="com.facebook.app.NativeAppCallContentProvider{Facebook-App-Id}"
        android:exported="true" />

确保 exported = true (如上所述)