在我的 android 应用程序中集成 Facebook 登录。
我的申请有两个要求
1) 获取登录用户的电子邮件 ID
2) 向用户 Facebook 墙发布有关应用程序安装和链接的提要
我可以通过使用读取权限来接收电子邮件
private void fbLogin() {
LoginManager.getInstance().logInWithReadPermissions(this,
Arrays.asList(
"public_profile",
"user_birthday",
"email"
)
);
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
SharedPreferences.Editor editor = facebookPreferences.edit();
AccessToken accessToken = loginResult.getAccessToken();
if (accessToken != null) {
fbProfile();
}
}
}
我可以使用发布权限发布提要
private void fbLogin() {
LoginManager.getInstance().logInWithPublishPermissions(this,
Arrays.asList(
"publish_actions"
)
);
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
SharedPreferences.Editor editor = facebookPreferences.edit();
AccessToken accessToken = loginResult.getAccessToken();
if (accessToken != null) {
fbPostAFeed();
}
}
}
无需再次登录即可更改权限。
但我的要求是获取电子邮件 ID 并将提要发布到 Facebook。
我知道登录可以与读取权限或发布权限相关联。
我搜索了这个发现一件事是 Session 但是,
Facebook 文档说: session 类在最新版本的 SDK 中不再可用
那我该如何执行呢。他们有什么办法吗?
提前致谢..
最佳答案
您需要添加一些权限并添加以下代码以共享提要,以下代码也包含图像。您可以根据需要对其进行自定义。
List<String> permissionNeeds = Arrays.asList("publish_actions");
manager = LoginManager.getInstance();
manager.logInWithPublishPermissions(this, permissionNeeds);
manager.registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
publishImage();
}
@Override
public void onCancel() {
System.out.println("onCancel");
}
@Override
public void onError(FacebookException exception) {
System.out.println("onError");
}
});
}
private void publishImage() {
Bitmap image = BitmapFactory.decodeResource(getResources(),
R.drawable.ic_launcher);
//You need to get bitmap from any source.
SharePhoto photo = new SharePhoto.Builder().setBitmap(image)
.setCaption("Welcome To Facebook Photo Sharing on steroids!")
.build();
SharePhotoContent content = new SharePhotoContent.Builder().addPhoto(
photo).build();
ShareApi.share(content, null);
Toast.makeText(this, "Succsesfully posted on your wall",
Toast.LENGTH_LONG).show();
}
关于android - Facebook 在 android facebook SDK 4.8.0 中使用读取和发布权限登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34765106/