【发布时间】:2016-04-12 18:01:30
【问题描述】:
我需要通过我的 Android 应用在 facebook 上分享内容。我可以登录并检索使用个人资料信息,但我无法分享帖子。 shareDialog.registerCallback 在我的情况下没有执行。
对于来自我的应用程序的Facebook 共享,我是否需要提供写入权限?如果是,什么时候给?
我的登录和分享代码,
private CallbackManager callbackManager;
ShareDialog shareDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
setContentView(R.layout.activity_main);
LoginManager.getInstance().logInWithReadPermissions(MainActivity.this, Arrays.asList("public_profile", "email"));
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(MainActivity.this);
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
if (ShareDialog.canShow(ShareLinkContent.class)) {
ShareLinkContent linkContent = new ShareLinkContent.Builder()
.setContentTitle("Share on fb")
.setContentUrl(Uri.parse("https://www.google.com"))
.build();
shareDialog.show(linkContent);
}
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
}
});
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
}
});
// LoginManager.getInstance().logInWithReadPermissions(MainActivity.this, Arrays.asList("public_profile", "email"));
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
我想要的方式就像单击共享按钮(下图)时应该登录并在 facebook 上共享,我想我应该为此使用自己的自定义界面。
【问题讨论】:
-
不,您在使用 ShareDialog 时不需要 publish_action 权限。能否请您发布您的 AndroidManifest.xml 文件?
-
请看我更新了我的问题
标签: java android facebook share