본문 바로가기

안드로이드

안드로이드 페이스북 연동

//페이스북 아이디 설정 및 라이브러리 가져오는 방법은 아래 링크에 잘 설명되어있습니다

  http://jeehun.egloos.com/3998429

//페이스북 로그인 후에 바로 글을 남기는 예제입니다.




private void facebookLogin(){

   Session.openActiveSession(this, true, new Session.StatusCallback() {


       // callback when session changes state

       @Override

       public void call(Session session, SessionState state, Exception exception) {

         if (session.isOpened()) {


           // make request to the /me API

           Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {


             // callback after Graph API response with user object

             @Override

             public void onCompleted(GraphUser user, Response response) {

               if (user != null) {

                publishFeedDialog();

               }

             }

           });

         }

       }

     });

   }

 @Override

 public void onActivityResult(int requestCode, int resultCode, Intent data) {

     super.onActivityResult(requestCode, resultCode, data);

     Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);

 }

 

 private void publishFeedDialog() {

   Bundle params = new Bundle();

params.putString("message", "");

params.putString("name", "");

params.putString("link", "마켓링크");

params.putString("description", "");

params.putString("picture", "이미지URL" );


   WebDialog feedDialog = (

       new WebDialog.FeedDialogBuilder(ShareDialog.this,

           Session.getActiveSession(),

           params))

       .setOnCompleteListener(new OnCompleteListener() {


           @Override

           public void onComplete(Bundle values,

               FacebookException error) {

               if (error == null) {

                   // When the story is posted, echo the success

                   // and the post Id.

                   final String postId = values.getString("post_id");

                   if (postId != null) {

                       Toast.makeText(ShareDialog.this,

                           "게시가 완료되었습니다",

                           Toast.LENGTH_SHORT).show();

                   } else {

                       // User clicked the Cancel button

                       Toast.makeText(ShareDialog.this.getApplicationContext(), 

                           "게시가 취소 되었습니다", 

                           Toast.LENGTH_SHORT).show();

                   }

               } else if (error instanceof FacebookOperationCanceledException) {

                   // User clicked the "x" button

                   Toast.makeText(ShareDialog.this.getApplicationContext(), 

                       "게시가 취소 되었습니다", 

                       Toast.LENGTH_SHORT).show();

               } else {

                   // Generic, ex: network error

                   Toast.makeText(ShareDialog.this.getApplicationContext(), 

                       "에러가 발생하였습니다", 

                       Toast.LENGTH_SHORT).show();

               }

           }


       })

       .build();

   feedDialog.show();

}