[facebook]¶
FaceBook 제품에 대한 필수 API 를 정의
환경설정¶
Facebook API를 사용하기 위해서는 아래와 같은 순서로, 프로젝트 변환 및 환경 값 설정이 필요 하다.
가. 프로젝트 변경 [Gradle 환경] 나. Facebook 개발자 계정 생성 및 API 키 획득 다. Facebook 앱 키 등록 라. Facebook 라이브러리 적용 마. AndroidManifestx.xml 바. Gradle 설정
가. 프로젝트 변경¶
기존 프로젝트를 Gradle 환경으로 변경한다.
나. Facebook 개발자 계정 생성 및 API 키 획득¶
다. Facebook 앱 키 등록¶
Facebook 개발자 사이트.의 4.매니페스트 수정 항목을 참고하여, facebook_app_id / fb_login_protocol_scheme 를 획득 한다.
프로젝트 > res > values > facebook.xml 생성 하고, 파일을 열어 획득한 정보를 입력 한.
<resources> <string name="facebook_app_id">[앱 아이디 입력]</string> <string name="fb_login_protocol_scheme">[fb앱아이디 입력]</string> </resources>
라. 프로젝트에 Facebook 라이브러리 적용¶
마. AndroidManifest.xml 선언 확인¶
<!-- FacebookContentProvider+facebook_app_id 로 적용 facebook_app_id 가 1234 라면 com.facebook.app.FacebookContentProvider1234 로 적용함--> <provider android:authorities="com.facebook.app.FacebookContentProvider앱아이디" android:name="com.facebook.FacebookContentProvider" android:exported="true" /> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/> <activity android:name="m.client.library.plugin.thirdparty.sns.facebook.activity.LoginActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <activity android:name="com.facebook.FacebookActivity" android:configChanges= "keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" /> <activity android:name="com.facebook.CustomTabActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="@string/fb_login_protocol_scheme" /> </intent-filter> </activity>
바. Gradle 설정¶
프로젝트 > build.gradle 적용
buildscript { repositories { jcenter() maven {url "https://maven.google.com"} maven {url "https://jcenter.bintray.com"} } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' classpath 'com.github.ksoichiro:gradle-eclipse-aar-plugin:+' } } apply plugin: 'com.android.application' apply plugin: 'com.github.ksoichiro.eclipse.aar' repositories { jcenter() maven {url "https://maven.google.com"} maven {url "https://jcenter.bintray.com"} } android { compileSdkVersion 27 buildToolsVersion "27.0.2" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] jniLibs { srcDir 'libs' } } instrumentTest.setRoot('tests') debug.setRoot('build-types/debug') release.setRoot('build-types/release') } defaultConfig { multiDexEnabled true } dexOptions { preDexLibraries = false } lintOptions { checkReleaseBuilds false abortOnError false } buildTypes { release { //minifyEnabled true //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' } } } dependencies { compile fileTree(dir: 'mcoreLibs', include: '*.jar', exclude: ['android-support-v4.jar']) compile 'com.android.support:appcompat-v7:23.0.1' compile 'com.facebook.android:facebook-android-sdk:4.+' }
FaceBook API¶
FaceBook 제품에 대한 3rd Party연동 기능을 제공한다.
status Type¶
Type |
Description |
---|---|
PROCESSING |
진행 중 |
SUCCESS |
정상 처리됨 |
FAIL |
처리 중 문제가 발생함 |
Auth Type¶
Facebook 인증 기능에 대한 정의
command |
Description |
---|---|
login |
로그인 |
gettoken |
토큰값 가져오기 |
graphrequest |
graph api 사용 |
Facebook 인증 API¶
-
M.
plugin
('3rd_facebook').auth( setting)¶ Changed in version 2.0.0.
- Arguments
setting (Object) – 설정 정보
setting.command (String) – 기능 ( Auth Type )
setting.setinfovalue (Object) – 사용자 정보 셋팅 (setinfo 필수)
setting.scallback (String) – 모니터링 콜백 함수 이름 (session 필수)
setting.callback (Function) – API 결과 콜백 함수
-
M.
callback
(status, result)¶
- Arguments
status (String) – API호출 결과값
result (Object) – 3rd Party 모듈 결과 값
result.result (String) – Kakao command 결과값
- 로그인
var params = {}; params.permissions = 'email,public_profile'; M.plugin('3rd_facebook').auth({ command: 'login', param : params, callback:function(status, result){ console.log(result); } });- 토큰 가져오기
M.plugin('3rd_facebook').auth({ command: 'gettoken', callback:function(status, result){ console.log(result); } });- Graph_Request
var params = {}; params.fields='id,name,email,gender,birthday,cover'; M.plugin('3rd_facebook').auth({ command: 'graphrequest', param: params, callback:function(status, result){ console.log(result); } });
Facebook Link 사용하기¶
-
M.
plugin
('3rd_facebook').link( setting)¶ Changed in version 2.0.0.
- Arguments
setting (Object) – 설정 정보
setting.command (String) – 기능
setting.param (Object) – 파라메터
setting.param.contentUrl (String) – 이동 URL
setting.param.title (String) – 제목
setting.param.description (String) – 부가설명
setting.param.imageUrl (String) – 이미지URL
setting.callback (Function) – API 결과 콜백 함수
-
M.
callback
(status, result)¶ - Arguments
status (String) – API호출 결과값
result (Object) – 3rd Party 모듈 결과 값
result.result (String) – FaceBook command 결과값
Example:
var params={}; params.contentUrl="http://www.naver.com"; params.title="제목입니다."; params.description="부가 설명입니다."; params.imageUrl="http://dev.uracle.co.kr/image.jpg"; M.plugin('3rd_facebook').link({ param: params, callback:function(status, result){ alert(JSON.stringify(result)); } });