Facebook SDK 2 – Share Ảnh Lên Wall

Tiếp tục với bài Facebook SDK trước.

Hôm nay mình sẽ hướng dẫn cách đăng một tấm ảnh lên Wall.
Code có những thay đổi so với hướng dẫn trước nên mình sẽ tạo một class riêng chứ không dùng chung class main cho các bạn dễ nhìn hơn.

Step 1: Xem nội dung AndroidManifest bên dưới:

2016-01-09_11-12-25

Như bạn thấy ở trên, ta sẽ tạo thêm một activity là “ShareImage” (java + xml), trong xml này có thể không thêm vào bất cứ gì.

Và khai báo thêm provider như trên, phần che mờ chính là app ID của bạn.

 

Step 2: Trở lại class ShareImage ta vừa tạo:

public class ShareImage extends Activity {
private CallbackManager callbackManager;
private LoginManager loginManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
{
super.onCreate(savedInstanceState);
setContentView(R.layout.share_activity);

FacebookSdk.sdkInitialize(getApplicationContext());

callbackManager = CallbackManager.Factory.create();

List<String> permissionNeeds = Arrays.asList("publish_actions"); // đây là permission để có thể post ảnh

loginManager = LoginManager.getInstance();
loginManager.logInWithPublishPermissions(this, permissionNeeds);
loginManager.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
shareImage();
finish();
}

@Override
public void onCancel() {
System.out.println("onCancel");
}

@Override
public void onError(FacebookException exception) {
System.out.println("onError");
}
});
}
}

private void shareImage() {
// các bạn thêm một tấm ảnh vào drawable, ở đây mình thêm một tấm ảnh tên flappy.jpg.
Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.flappy);
SharePhoto photo = new SharePhoto.Builder()
.setBitmap(image)
.setCaption("Facebook SDK example post") // tiêu đề
.build();

SharePhotoContent content = new SharePhotoContent.Builder()
.addPhoto(photo)
.build();

ShareApi.share(content, null);

}

@Override
protected void onActivityResult(int requestCode, int responseCode, Intent data) {
super.onActivityResult(requestCode, responseCode, data);
callbackManager.onActivityResult(requestCode, responseCode, data);
}
}

Step 3:

Trở lại Mainactivity.

Ta thêm vào đây một button và set sự kiện onClick cho button này.

onClick ta sẽ cho khởi động activity ShareImage:

startActivity(new Intent(MainActivity.this, ShareImage.class));

 

Đây là kết quả:

2016-01-09_11-07-02.jpg

Để share Video hoặc những thứ khác, bạn có thể tìm hiểu thêm tại đây:

https://developers.facebook.com/docs/sharing/android

 

Xong !

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s