LathikaShetty
LathikaShetty

Reputation: 441

Facebook Share from my app

I want share content on Facebook from my app. When i click share button it should login and share content from dialog. Login is Working fine, But i don't know how share without default share button from Facebook SDK

My Facebook login code as follows

final ProfileTracker[] mProfileTracker = new ProfileTracker[1];
LoginManager.getInstance().logInWithReadPermissions(MainActivity.this, Arrays.asList("public_profile", "email"));
LoginManager.getInstance().registerCallback(callbackManager,
        new FacebookCallback<LoginResult>() {


            @Override
            public void onSuccess(LoginResult loginResult) {

            }

            @Override
            public void onCancel() {
                // App code
                Toast.makeText(MainActivity.this, "Authentication with Facebook failed!", Toast.LENGTH_LONG).show();

            }

            @Override
            public void onError(FacebookException exception) {
                // App code
                Toast.makeText(MainActivity.this, "Authentication with Facebook failed!", Toast.LENGTH_LONG).show();

            }
        });
}

Upvotes: 1

Views: 172

Answers (1)

Kapil Rajput
Kapil Rajput

Reputation: 11565

After successful login use ShareLinkContent to share on facebook wall :

code :

 if (ShareDialog.canShow(ShareLinkContent.class)) {
                        ShareLinkContent linkContent = new   ShareLinkContent.Builder()
                                .setContentTitle("Any Title")
                               /* .setContentDescription(
                                        "'Hello Facebook'")*/
                                .setContentUrl(Uri.parse("https://www.google.com"))
                                .build();

                        shareDialog.show(linkContent);
                    }

In onSuccess method of LoginManager use this peice of code.

and initialize ShareDialog and CallbackManager in onCreate of Activity like this :

callbackManager=CallbackManager.Factory.create();
            shareDialog=new ShareDialog(this);
            shareDialog.registerCallback(callbackManager, new   FacebookCallback<Sharer.Result>() {
                @Override
                public void onSuccess(Sharer.Result result) {

                }

                @Override
                public void onCancel() {

                }

                @Override
                public void onError(FacebookException e) {

                }
            });

and onActivityResult method of Activity add callback manager :

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent   data)
  {
    super.onActivityResult(requestCode, resultCode, data);
  callbackManager.onActivityResult(requestCode, resultCode, data);
   }

Upvotes: 2

Related Questions