When my app try to share something, the description is shown in the share activity, but it does not show up when it is posted. I went through many stackoverflow posts, but nothing could solve my problem.
Here is my call flow :
Here is the code that i use
if (FacebookDialog.canPresentShareDialog(activity.getApplicationContext(), 
     FacebookDialog.ShareDialogFeature.SHARE_DIALOG)) 
    {
     FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(activity)
           .setLink("<playstore link>")
           .setApplicationName("<appname>")
           .setName("<some name>")
           .setCaption("<some text>")
           .setDescription("a description")
           .setPicture("http://url/to/image.jpg")
           .build();
        uiHelper.trackPendingDialogCall(shareDialog.present());
    }
But sharing the same using FeedDialog works
Bundle params = new Bundle();
                    params.putString("name", "name");
                    params.putString("caption", "caption");
                    params.putString("description","desc");
                    params.putString("link", "playstore link");
                    params.putString("picture", "http://url/to/image.jpg");
                    WebDialog feedDialog = (
                        new WebDialog.FeedDialogBuilder(activity,
                                session,
                            params))
                        .setOnCompleteListener(new OnCompleteListener() {
                            @Override
                            public void onComplete(Bundle values,
                                FacebookException error) {
                                if (error == null) {
                                    final String postId = values.getString("post_id");
                                    if (postId != null) {
                                        Toast.makeText(activity,
                                            "Posted Successfully!",
                                            Toast.LENGTH_SHORT).show();
                                        activity.finish();
                                    } else {
                                        // User clicked the Cancel button
                                        Toast.makeText(activity.getApplicationContext(), 
                                            "Publish cancelled", 
                                            Toast.LENGTH_SHORT).show();
                                        activity.finish();
                                    }
                                } else if (error instanceof FacebookOperationCanceledException) {
                                    // User clicked the "x" button
                                    Toast.makeText(activity.getApplicationContext(), 
                                        "Publish cancelled", 
                                        Toast.LENGTH_SHORT).show();
                                    activity.finish();
                                } else {
                                    Toast.makeText(activity.getApplicationContext(), 
                                        "An Error Occurred", 
                                        Toast.LENGTH_SHORT).show();
                                    activity.finish();
                                }
                            }
                        })
                        .build();
                    feedDialog.show();
Thank You
From the docs (Versions 4.0+)
To show the ShareDialog for a link in your activity, create a ShareDialog instance in your onCreate method:
public class MainActivity extends FragmentActivity { CallbackManager callbackManager; ShareDialog shareDialog; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(getApplicationContext()); callbackManager = CallbackManager.Factory.create(); shareDialog = new ShareDialog(this); // this part is optional shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { ... }); }Then show the ShareDialog:
if (ShareDialog.canShow(ShareLinkContent.class)) { ShareLinkContent linkContent = new ShareLinkContent.Builder() .setContentTitle("Hello Facebook") .setContentDescription( "The 'Hello Facebook' sample showcases simple Facebook integration") .setContentUrl(Uri.parse("http://developers.facebook.com/android")) .build(); shareDialog.show(linkContent); }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With