截至2017年,Facebook不允许直接从您的应用程序共享图像和文本。
解决方法
然而,Facebook可以通过URL获取标题和图像数据,并在共享帖子中使用它们。
作为一种解决方法,您可以创建一个单页应用程序*,动态加载您想要共享的文本/图像(在URL中指定),然后共享该URL。
注意:
确保您的单页应用程序生成静态页面,在Facebook的页面抓取之前设置其标题、开放式图元标签和图像。如果这些网页标签通过JavaScript动态更改,则Facebook将无法抓取这些值并在其共享帖子中使用它们。
使用开放式图元属性标签og:image:height和og:image:width,允许
Facebook创建图像预览在其共享帖子中。
步骤
0)将
最新Facebook SDK库添加到您的build.gradle文件中。
compile group: 'com.facebook.android', name: 'facebook-android-sdk', version: '4.25.0'
1)在AndroidManifest.xml中,在<application>
部分内添加一个meta-data标签:
<application android:label="@string/app_name" ...>
...
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
...
</application>
在strings.xml文件中添加一个facebook_app_id字符串(带有您的APP ID):
<string name="facebook_app_id">12341234</string>
YOURFBAPPID是您在https://developers.facebook.com/apps/找到的Facebook应用程序ID号码。
2)还需要在AndroidManifest.xml中的<application>
标签外添加一个<provider>
标签。
<provider android:authorities="com.facebook.app.FacebookContentProviderYOURFBAPPID"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>
3) 使用ShareLinkContent构建器创建一个ShareLinkContent对象:
ShareLinkContent fbShare = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse("http://yourdomain.com/your-title-here/someimagefilename"))
.build();
4) 从您的片段(或活动等)共享它:
ShareDialog.show(getActivity(), fbShare);
Facebook文档
https://developers.facebook.com/docs/android/getting-started