我想通过我的应用在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();
}
});
}
答案 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 中初始化CallbackManager
和Activity
,如下所示:
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);
}