我使用facebook SDK最新版(v 4.15)
compile 'com.facebook.android:facebook-android-sdk:[4,5)'
我想在没有对话框显示的情况下将文字发布到我的墙上。我发现名为 ShareApi 的课程可以帮助我做到这一点。
private void publish() {
ShareLinkContent linkContent = new ShareLinkContent.Builder()
.setContentTitle("title example")
.setContentDescription("Des example")
.setContentUrl(Uri.parse("www.google.com"))
.build();
Bitmap image = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
SharePhoto photo = new SharePhoto.Builder()
.setBitmap(image)
.setCaption("Binh test!")
.build();
SharePhotoContent photoContent = new SharePhotoContent.Builder()
.addPhoto(photo)
.build();
ShareFeedContent shareFeedContent = new ShareFeedContent.Builder()
.setLinkName("link name example")
.setLink("www.google.com")
.setLinkCaption("Google")
.build();
//ShareApi.share(linkContent, shareResult); // worked well
//ShareApi.share(photoContent, shareResult); // worked well
ShareApi.share(shareFeedContent, shareResult); // nothing call back from facebook
}
FacebookCallback<Sharer.Result> shareResult = new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
LogUtil.debug(CLASS_NAME + " Share success");
}
@Override
public void onCancel() {
LogUtil.debug(CLASS_NAME + " onCancel");
}
@Override
public void onError(FacebookException e) {
LogUtil.debug(CLASS_NAME + " Share error: " + e.toString());
}
};
尝试后,我可以成功发布链接或照片到我的墙上。
我的期望,我只想发布没有链接或照片的文字
我尝试了以下内容:
1。分享LinkContent
我尝试将链接网址更改为空,但Facebook不接受此参数为空。
ShareLinkContent linkContent = new ShareLinkContent.Builder()
.setContentTitle("title example")
.setContentDescription("Des example")
.setContentUrl(Uri.parse("")) // empty Url
.build();
2。 PhotoContent
我设置位图参数为null但也不接受来自facebook
SharePhoto photo = new SharePhoto.Builder()
.setBitmap(null)
.setCaption("Caption test!")
.build();
SharePhotoContent photoContent = new SharePhotoContent.Builder()
.addPhoto(photo)
.build();
第3。 ShareFeedContent
没有回应。
ShareFeedContent shareFeedContent = new ShareFeedContent.Builder()
.setLinkName("link name example")
.setLink("www.google.com")
.setLinkCaption("Google")
.build();