分享到Facebook的故事

时间:2018-05-15 16:55:02

标签: facebook facebook-android-sdk

根据these指示,我们能够实现与Instagram Stories的共享,但不能与Facebook Stories共享。尽管安装和更新了Facebook应用,但Android无法为意图com.facebook.stories.ADD_TO_STORY找到应用。有没有人能够做到这一点?

1 个答案:

答案 0 :(得分:1)

这可能为时已晚,但是我想回答一下,如果它可以帮助那些可能在没有“意图选择器”对话框的情况下共享到instagram的人。


Facebook希望我们启动一个意图选择器对话框,以便从Facebook应用程序本身中的4个-5个活动中进行选择,这些活动可以处理com.facebook.stories.ADD_TO_STORY作为动作。


尽管如此,这是我用来从facebook应用程序启动确切的故事编辑器屏幕的代码。它使用ACTION_SEND而不是com.facebook.stories.ADD_TO_STORY。 因此,首先在清单中的应用程序标记内定义一个文件提供程序

<provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="${applicationId}.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_provider_paths" />
        </provider>

然后将file_provider_paths.xml保留在res目录的xml文件夹中。 file_provider_paths.xml

<paths>
    <external-path
        name="share"
        path="/" />
</paths>

然后准备一个您要共享的文件

File file = new File(imagePath);
Uri fileUri = FileProvider.getUriForFile(getApplicationContext(),getPackageName()+".fileprovider",file);

然后将意图发送到instagram

Intent storiesIntent = new Intent(Intent.ACTION_SEND);
storiesIntent.setComponent(new ComponentName("com.instagram.android", "com.instagram.share.handleractivity.CustomStoryShareHandlerActivity"));
storiesIntent.setDataAndType(uri, "image/*");//for background image
storiesIntent.putExtra("interactive_asset_uri", uri);//for sticker assets
storiesIntent.putExtra("content_url", "https://dexati.com/");
grantUriPermission("com.instagram.android", uri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityForResult(storiesIntent, 0);

在这里,我们明确调用了Facebook应用的故事编辑器活动。