在我的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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用发布权限发布Feed
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
无需再次登录即可更改权限.
但我的要求是获取电子邮件ID并向Facebook发送提要.我知道登录可以与读取权限或发布权限相关联.我搜索了这个发现有一件事是Session但是,Facebook医生说:在最新版本的SDK中不再提供Session类然后我该如何执行此操作.他们是否有任何办法这样做.提前致谢 ..
您需要添加一些权限并添加以下代码来共享提要,下面的代码也包含图像。您可以根据您的需要对其进行自定义。
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();
}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4254 次 |
| 最近记录: |