我想通过我的应用在 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();
}
});
}
最佳答案
登录成功后使用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方法中使用这段代码。
并在 Activity
的 onCreate 中初始化 ShareDialog
和 CallbackManager
,如下所示:
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);
}
关于android - 从我的应用程序分享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34651882/