Facebook从我的应用程序分享

时间:2016-01-07 09:44:49

标签: android facebook

我想通过我的应用在Facebook上分享内容。 当我点击分享按钮时,它应该登录并分享对话框中的内容。 登录工作正常,但我不知道Facebook SDK

中没有默认共享按钮的共享方式

我的Facebook登录代码如下

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();

            }
        });
}

1 个答案:

答案 0 :(得分:2)

成功登录后,使用ShareLinkContent在Facebook墙上分享:

代码

 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);
                    }

在LoginManager的onSuccess方法中使用此代码。

并在ShareDialog onCreate 中初始化CallbackManagerActivity,如下所示:

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) {

                }
            });

onActivityResult方法的Activity添加回调管理器:

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