페이스북 안드로이드 sdk로 어플을 개발하면서 제가 쓰던 글쓰기 코드를 정리해 보았습니다~
페이스북 타임라인에 글을 올릴때 다음과 같이 크게 2가지로 분류된다
1. 이미지 및 동영상 올리기
2. 링크글 올리기
페이스북 안드로이드 sdk를 이용할때도 이 두가지 분류에 따라서 사용법이 달라진다
1. 이미지 및 동영상 올리기
List<String> permissions = session.getPermissions();
if (permissions.containsAll(mPermissions)) {
AsyncTask<Void, Void, Response> task = new AsyncTask<Void, Void, Response>() {
@Override
protected Response doInBackground(Void... voids) {
Bundle param = new Bundle();
//이미지 및 동영상 파일 올리기
File outputfile = new File(mPath);
ParcelFileDescriptor descriptor = ParcelFileDescriptor.open(outputfile, ParcelFileDescriptor.MODE_READ_ONLY);
param.putParcelable(outputfile.getName(), descriptor);
//이미지일 경우
String graphpath = "/photos";
param.putString("message", "글");
//동영상일 경우
//String graphpath = "/videos";
//param.putString("description", "글");
Request request = new Request(mSession, graphpath, param, HttpMethod.POST);
return request.executeAndWait();
}
@Override
protected void onPostExecute(Response response) {
try {
GraphObject graphobject = response.getGraphObject();
//결과값
} catch(Exception e) {
e.printStackTrace();
}
}
};
task.execute();
}
2. 링크글 올리기
List<String> permissions = session.getPermissions();
if (permissions.containsAll(mPermissions)) {
AsyncTask<Void, Void, Response> task = new AsyncTask<Void, Void, Response>() {
@Override
protected Response doInBackground(Void... voids) {
Bundle param = new Bundle();
param.putString("message", "글");
param.putString("link", "링크주소");
//만약 페이스북글을 링크시키고 싶을때에는 다음과 같이 한다
//////////////이젠 이방식은 안쓰임ㅠㅠ 대신 아랫글을 참고/////////////////
//이미지 글: param.putString("link", "https://www.facebook.com/photo.php?fbid=" + id);
//동영상 글: param.putString("link", "https://www.facebook.com/photo.php?v=" + id);
//id는 해당글의 아이디이다
////////////////////////////////////////////////14.01.09///////////////
/////////////////////페이스북글 링크시키는 대체된 방식///////////////////
//페이스북글을 파싱해온 필드중에 "link" 값을 그대로 아래에 삽입
param.putString("link", "페이스북글 link 값의 주소");
////////////////////////////////////////////////14.03.03 수정//////////
Request request = new Request(mSession, "/feed", param, HttpMethod.POST);
return request.executeAndWait();
}
@Override
protected void onPostExecute(Response response) {
try {
GraphObject graphobject = response.getGraphObject();
//결과값
} catch(Exception e) {
e.printStackTrace();
}
}
};
task.execute();
}
참고로
위치는
param.putString("place", "지역아이디");
함께하는 사람 태그는
param.putString("tags", "회원아이디1,회원아이디2,회원아이디3");
이다
'개발 > android' 카테고리의 다른 글
안드로이드에서의 가장 간단하고 확실한 칼만필터(Kalman Filter) 테스트 (14) | 2014.03.17 |
---|---|
안드로이드 앱 런칭후 데이터베이스 변경시 주의할점 (2) | 2014.01.20 |
스레드에서 View 변경시 Only the original thread…. 에러 대처법 (0) | 2013.11.25 |
배경 Layout을 손가락 터치로 따라 움직이게 하는 방법 (0) | 2013.10.08 |
큰 배경이미지 사용시 OutOfMemoryError의 확실한 해결법 (12) | 2013.10.04 |