gpt4 book ai didi

android - Facebook 在 android facebook SDK 4.8.0 中使用读取和发布权限登录

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:15:20 26 4
gpt4 key购买 nike

在我的 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com