Facebook登录有android facebook SDK 4.8.0的读取和发布权限

And*_*H M 7 android facebook

在我的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类然后我该如何执行此操作.他们是否有任何办法这样做.提前致谢 ..

Art*_*lva 0

您需要添加一些权限并添加以下代码来共享提要,下面的代码也包含图像。您可以根据您的需要对其进行自定义。

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)