Android : การ import Facebook SDK

สวัสดีครับกลับมาเขียนบทความเกี่ยวกับ facebook อีกครั้งหนึ่งหลังจากผมเคยเกริ่นไว้นั้นแสนนาน ในบทความ การติดตั้ง Facebook บน Android Emulator เอาหละวันนี้เราจะมาเริ่มขั้นตอนแรกก่อนที่เราจะเขียนโปรแกรมเชื่อมต่อกับ facebook คือการนำเข้า (Import) facebook sdk มาใช้งานในโปรเจ็คของเรา โดยผมจะอธิบายขั้นตอนทั้งใน eclipse และ android studio นะครับ

Facebook SDK คืออะไร?

ก่อนอื่นเรามาทำรู้จักกับ Facebook SDK ก่อนครับว่ามันคืออะไร Facebook SDK  คือชุดอุปกรณ์ที่ช่วยให้แอพพลิเคชั่นแอนดรอย์ของเราสามารถเรียกใช้บริการของ facebook ได้ครับ (คือถ้าไม่มีก็ใช้บริการ facebook ไม่ได้นั้นหละ) และสามารถดูรายละเอียดเพิ่มเติมได้ที่ https://developers.facebook.com/docs/android/

การ Import Facebook SDK

Import Facebook SDK สำหรับ Android studio

* Version ที่ใช้ android studio 0.8.14

1. ดาวน์โหลด facebook sdk ได้จาก https://developers.facebook.com/ docs/android/downloads/ เลือกรุ่นได้ตามใจ และทำการ Extract ไฟล์

2. ไปที่ menu -> Import Module

3. เลือกไปยังโฟลเดอร์ facebook (ข้างใน folder facebook sdk) กด ok เมื่อเรียบร้อยโครงสร้าง Project ด้านซ้ายมือจะมีลักษณะคล้ายในภาพข้างล่าง

Screenshot from 2014-11-19 22:18:38รูปที่ 1 แถบโครงสร้าง Project ที่มีการ Import Module facebook เข้ามาแล้ว

4.  หากพบปัญหา Could not find property ‘ANDROID_BUILD_MIN_SDK_ VERSION’ on project ‘:facebook’ แก้ปัญหาโดยคัดลอกโค้ดด้านล่างไปทับในไฟล์ build.grade ในโฟลเดอร์ facebook

 apply plugin: 'android-library'  
 project.group = 'com.facebook.android'  
 dependencies {  
   compile 'com.android.support:support-v4:20.0.+'  
   compile 'com.parse.bolts:bolts-android:1.1.2'  
 }  
 android {  
   compileSdkVersion 19  
   buildToolsVersion '20.0.0'  
   defaultConfig {  
     minSdkVersion 10  
     targetSdkVersion 19  
   }  
   lintOptions {  
     abortOnError false  
   }  
   sourceSets {  
     main {  
       manifest.srcFile 'AndroidManifest.xml'  
       java.srcDirs = ['src']  
       res.srcDirs = ['res']  
     }  
   }  
 }  
 apply plugin: 'maven'  
 apply plugin: 'signing'  
 def isSnapshot = version.endsWith('-SNAPSHOT')  
 def ossrhUsername = hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""  
 def ossrhPassword = hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""  
 task setVersion {  
   // The version will be derived from source  
   project.version = null  
   def sdkVersionFile = file('src/com/facebook/FacebookSdkVersion.java')  
   sdkVersionFile.eachLine{  
     def matcher = (it =~ /(?:.*BUILD = \")(.*)(?:\".*)/)  
     if (matcher.matches()) {  
      project.version = matcher[0][1]  
      return  
     }  
   }  
   if (project.version.is('unspecified')) {  
    throw new GradleScriptException('Version could not be found.', null)  
   }  
 }  
 uploadArchives {  
   repositories.mavenDeployer {  
     beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }  
     repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {  
       authentication(userName: ossrhUsername, password: ossrhPassword)  
     }  
     snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {  
       authentication(userName: ossrhUsername, password: ossrhPassword)  
     }  
     pom.project {  
       name 'Facebook-Android-SDK'  
       artifactId = 'facebook-android-sdk'  
       packaging 'aar'  
       description 'Facebook Android SDK'  
       url 'https://github.com/facebook/facebook-android-sdk'  
       scm {  
         connection 'scm:git@github.com:facebook/facebook-android-sdk.git'  
         developerConnection 'scm:git@github.com:facebook/facebook-android-sdk.git'  
         url 'https://github.com/facebook/facebook-android-sdk'  
       }  
       licenses {  
         license {  
           name 'The Apache Software License, Version 2.0'  
           url 'https://github.com/facebook/facebook-android-sdk/blob/master/LICENSE.txt'  
           distribution 'repo'  
         }  
       }  
       developers {  
         developer {  
           id 'facebook'  
           name 'Facebook'  
         }  
       }  
     }  
   }  
 }  
 uploadArchives.dependsOn(setVersion)  
 signing {  
   required { !isSnapshot && gradle.taskGraph.hasTask("uploadArchives") }  
   sign configurations.archives  
 }  
 task androidJavadocs(type: Javadoc) {  
   source = android.sourceSets.main.java.srcDirs  
   classpath += project.files(android.getBootClasspath().join(File.pathSeparator))  
 }  
 task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {  
   classifier = 'javadoc'  
   from androidJavadocs.destinationDir  
 }  
 task androidSourcesJar(type: Jar) {  
   classifier = 'sources'  
   from android.sourceSets.main.java.sourceFiles  
 }  
 artifacts {  
   archives androidSourcesJar  
   archives androidJavadocsJar  
 }  
 afterEvaluate {  
   androidJavadocs.classpath += project.android.libraryVariants.toList().first().javaCompile.classpath  
 }  

5. คลิ๊กขวาที่โปรเจ็ค เลือก -> Open Module Settings -> app -> Dependencies เลือกเครื่องหมาย + ด้านขวา เลือก Module Dependencie และเลือก :facbook กด ok 2 ที เป็นอันจบขั้นตอนการ Import Facebook SDK สำหรับ android studio

Import Facebook SDK สำหรับ Eclipse

1. ดาวน์โหลด facebook sdk ได้จาก https://developers.facebook.com/ docs/android/downloads/ เลือกรุ่นได้ตามใจ และทำการExtract ไฟล์

2.  File -> Import -> Android -> Existing Android Code Into Workspace และ next ครับ

3. Browse ไปที่ facebook-android-sdk-xxx/facebook กด ok

4. คลิ๊กขวาที่โปรเจ็คของเรา เลือก Properties

5. เลือกแถบ Android ด้านซ้ายบน กด Add เลือก FacebookSDK กด ok 2 ทีตามรูปด้านล่าง เป็นอันจบขั้นตอนการ Import ครับ

Screenshot from 2014-11-20 14:35:44

รูปที่ 2 แสดงการเพิ่ม FacebookSDK เข้ามาใน Project ของเรา

ครับก็จบขั้นตอนการนำเข้า Facebook SDK ทั้งใน android studio และ eclipse นะครับ บทความต่อไปผมจะนำ Facebook SDK มาใช้ครับ โดยเราจะทำให้แอพพลิเคชั่นของเราล๊อคอินด้วย facebook ได้ครับ (ไม่แน่อาจมีแบ่ง Part ถ้ายาวเกิน) ติดตามได้จากตัวอย่างต่อไปครับ

About octoboy


Android Developer, Study Master degree of Computer Engineering at Prince of Songkla university.