Sharing on Facebook from Android using setContentU

2020-05-06 12:47发布

问题:

I am having some trouble while trying to share content from my app into Facebook. I am using the following code to do it:

facebookButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(ShareDialog.canShow(ShareLinkContent.class)){
                ShareLinkContent linkContent=new ShareLinkContent.Builder()
                        .setContentUrl(Uri.parse(imageUrls.get(0)))
                        .build();
                shareDialog.show(linkContent, ShareDialog.Mode.WEB);

            }
        }
    });

My images are stored on Firebase Storage and I am able to post on Facebook as well but the title and description are both set to firebasestorage.googleapis.com like this linked image: screenshot of share post

Note : The setContentDescription() and setContentTitle() and setImageUrl() are all deprecated. Is there a way to set the title,and description of the shared post?

回答1:

FadyDev, I don't know if you've already resolved your problem but this is what I do in place of deprecated codes:

// Builds the object    
   ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
            .putString("fb:app_id", my_app_ID)
            .putString("og:url", link_to_site)
            .putString("og:type", objectType)
            .putString("og:title", contentTitle)
            .putString("og:description", contentDescription)
            .putString("og:image", imageLink)
            .build();

// Builds the action
        ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
                .setActionType(actionName)
                .putObject(objectName, object)
                .build();

// Create the openGraphContent
        ShareOpenGraphContent openGraphContent = new ShareOpenGraphContent.Builder()
                .setPreviewPropertyName(objectName)
                .setAction(action)
                .build();

        return openGraphContent;

Look in the facebook doc for what action you want to use and there corresponding object type and required parameters.

https://developers.facebook.com/docs/sharing/opengraph/using-actions https://developers.facebook.com/docs/reference/opengraph

Hope this helps!