본문 바로가기
Back-end/Android

[Android] Facebook 앱 만들기

by JiGyeong 2016. 6. 14.


http://restfb.com/

사이트에 접속해서 zip파일을 다운받는다.


jar파일을 라이브러리에 추가해준다.






그리고 빌드를 한번 해준다.




https://developers.facebook.com/에 들어가서 엑세스 토큰을 가져옵니다.





앱id와  시크릿코드도 가져온다.


Facebook.java 클래스를 만들어준다.



package com.ktds.jgbaek.customlistview.facebook;

import android.content.Context;
import android.util.Log;

import com.ktds.jgbaek.customlistview.MainActivity;
import com.restfb.Connection;
import com.restfb.DefaultFacebookClient;
import com.restfb.FacebookClient;
import com.restfb.Parameter;
import com.restfb.Version;
import com.restfb.types.Post;
import com.restfb.types.User;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by 206-008 on 2016-06-14.
 */
public class Facebook {
    /**인증과 관련된 상수들
     *
     */
    private static final String APP_ID = "@@@@@ 앱아이디 입력 @@@@@";
    private static final String APP_SECRET = "@@@@@ 앱시크릿키 입력 @@@@@";
private static final String ACCESS_TOKEN = "@@@@@ 액세스 토큰 입력 @@@@@"; private Context context; /** * Facebook 인증 객체 */ private FacebookClient myFacebook; private boolean isLogin; public Facebook(Context context) { this.context = context; } /** * Facevook으로 로그인 한다. * @return : 로그인 성공시 true */ public void auth(){ new Thread(new Runnable() { @Override public void run() { //Facebook 로그인 myFacebook = new DefaultFacebookClient(ACCESS_TOKEN, Version.LATEST); // 로그인이 성공했는지 체크하기 // 로그인된 계정의 정보를 가져온다. User me = myFacebook.fetchObject("me", User.class); Log.d("FACEBOOK", me.getName()+" 계정으로 로그인 함"); isLogin = me!=null; if(isLogin){ ((MainActivity)context).setTimeline(); } } }).start(); } public boolean isLogin(){ return isLogin; } public void getTimeline(final TimelineSerializable timelineSerializable){ new Thread(new Runnable() { @Override public void run() { // 나의 타임라인에서 포스트 들을 가져온다. Connection feeds = myFacebook.fetchConnection("me/feed", Post.class, Parameter.with("fields","from,likes,message,story")); List postList = new ArrayList(); for(List posts : feeds){ postList.addAll(posts); } timelineSerializable.serialize(postList); } }).start(); } public interface TimelineSerializable{ public void serialize(List posts); } }




Main 부 처리



내용을 받아올때는 getMessage 또는 getStory

작성자를 받아올때는 getFrom().getName()

좋아요 수를 받아올때는 getLikes().getData().size() +"" 숫자형으로 반환되므로 문자로 변환





받은 context를 textView에 넣어준다.





facebook을 선언하고 실행시켜준다.


결과화면





'Back-end > Android' 카테고리의 다른 글

[Android] icon  (0) 2016.06.17
[Android] 이쁜 메뉴 만들기 / fragment  (0) 2016.06.16
[Android] 객체보내기 / Serializable  (0) 2016.06.14
[Android] ListView  (0) 2016.06.13
[Android] network 연결하기  (0) 2016.06.13