การเริ่มต้นใช้งาน Facebook SDK สำหรับ iOS

คู่มือนี้แสดงให้คุณเห็นถึงวิธีผสานการทำงานแอพ iOS เข้ากับ Facebook โดยใช้ Facebook SDK สำหรับ iOS

นับตั้งแต่ SDK เวอร์ชั่น 13.0 เป็นต้นไป คุณต้องระบุโทเค็นของไคลเอ็นต์ในการเรียกใช้ API กราฟทุกครั้ง

Facebook SDK จะเปิดใช้งานรายการต่อไปนี้

ก่อนเริ่มต้น

คุณจำเป็นต้องมีสิ่งต่อไปนี้

ขั้นตอนที่ 1: ตั้งค่าสภาพแวดล้อมในการพัฒนาของคุณ

  1. ใน Xcode ให้คลิก ไฟล์ > แพ็คเกจ Swift > เพิ่มส่วนเสริมแพ็คเกจ
  2. ในกล่องโต้ตอบที่ปรากฏขึ้นมา ให้ป้อน URL ที่เก็บข้อมูล: https://github.com/facebook/facebook-ios-sdk
  3. ในเวอร์ชั่น ให้เลือกจนกว่าจะถึงเวอร์ชั่นใหญ่ถัดไป และเลือกตัวเลือกเริ่มต้น
  4. ทำตามขั้นตอนที่แจ้งจนเสร็จสมบูรณ์เพื่อเลือกคลังที่ต้องการใช้ในโปรเจ็กต์ของคุณ
  5. หากคุณต้องการเพิ่มแพ็คเกจนี้ไปยังโปรเจ็กต์ของคุณ

    อนุญาตให้แอพของคุณใช้บริการของ Facebook

    FacebookCore

    อนุญาตให้ผู้ใช้เข้าสู่ระบบแอพของคุณได้ และช่วยให้แอพของคุณขอสิทธิ์การอนุญาตเพื่อเข้าถึงข้อมูลได้

    FacebookLogin

    อนุญาตให้แอพของคุณแชร์เนื้อหาบน Facebook ได้

    FacebookShare

    อนุญาตให้ผู้ใช้เข้าสู่ระบบแอพของคุณได้เพื่อกระตุ้นการมีส่วนร่วมและโปรโมทฟีเจอร์โซเชียลต่างๆ

    FacebookGamingServices

ขั้นตอนที่ 2: กำหนดค่าโปรเจ็กต์ของคุณ

กำหนดค่าไฟล์ Info.plist ด้วยข้อมูลโค้ด XML ที่มีข้อมูลเกี่ยวกับแอพของคุณ

หลังจากใช้การเข้าสู่ระบบด้วย Facebook เหตุการณ์ในแอพบางเหตุการณ์จะได้รับการลงบันทึกและเก็บรวบรวมไว้สำหรับตัวจัดการเหตุการณ์โดยอัตโนมัติ เว้นแต่คุณจะปิดใช้งานการลงบันทึกเหตุการณ์ในแอพอัตโนมัติ โปรดดูรายละเอียดเกี่ยวกับข้อมูลที่จะได้รับการเก็บรวบรวมและวิธีปิดใช้งานการลงบันทึกเหตุการณ์ในแอพอัตโนมัติที่การลงบันทึกเหตุการณ์ในแอพอัตโนมัติ

  1. คลิกขวาที่ Info.plist และเลือก Open As ▸ Source Code
  2. คัดลอกและวางข้อมูลโค้ด XML ต่อไปนี้ลงในเนื้อหาของไฟล์ ( <dict>...</dict>)
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>fbAPP-ID</string>
      </array>
      </dict>
    </array>
    <key>FacebookAppID</key>
    <string>APP-ID</string>
    <key>FacebookClientToken</key>
    <string>CLIENT-TOKEN</string>
    <key>FacebookDisplayName</key>
    <string>APP-NAME</string>
  3. ใน <array><string> ในคีย์ [CFBundleURLSchemes] ให้แทนที่ APP-ID ด้วย ID ของแอพคุณ
  4. ใน <string> ในคีย์ FacebookAppID ให้แทนที่ APP-ID ด้วย ID ของแอพคุณ
  5. ใน <string> ในคีย์ FacebookClientToken ให้แทนที่ CLIENT-TOKEN ด้วยค่าที่พบได้ใน การตั้งค่า > ขั้นสูง > โทเค็นของไคลเอ็นต์ ในแดชบอร์ดของแอพคุณ
  6. ใน <string> ในคีย์ FacebookDisplayName ให้แทนที่ APP-NAME ด้วยชื่อแอพของคุณ
  7. ในการใช้กล่องโต้ตอบใดๆ ของ Facebook (เช่น การเข้าสู่ระบบ การแชร์ คำเชิญให้ลงแอพ ฯลฯ) ที่สามารถดำเนินการสลับแอพไปเป็นแอพ Facebook ได้ Info.plist ของแอพพลิเคชั่นของคุณจำเป็นต้องมีสิ่งต่อไปนี้ด้วย
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>fbapi</string>
      <string>fb-messenger-share-api</string>
    </array>

คุณสามารถกำหนดการรวบรวมเหตุการณ์ในแอพอัตโนมัติให้เป็น “true” หรือ “false” ได้โดยตรง โดยเพิ่ม FacebookAutoLogAppEventsEnabled เป็นคีย์ใน Info.plist

โปรเจ็กต์ของคุณจะต้องมีความสามารถ Keychain Sharing อยู่ด้วย เพื่อให้การเข้าสู่ระบบทำงานในแอพพลิเคชั่น Mac Catalyst ได้
  1. เลือกปุ่ม + Capability (+ ความสามารถ) ในแท็บ Signing & Capabilities (การลงชื่อและความสามารถ) เมื่อกำหนดค่าเป้าหมายแอพของคุณ
  2. ค้นหาและเลือกความสามารถ Keychain Sharing
  3. ตรวจสอบว่าได้มีการระบุความสามารถ Keychain Sharing ไว้สำหรับเป้าหมายดังกล่าว

ขั้นตอนที่ 3: เชื่อมต่อ App Delegate

แทนที่โค้ดในเมธอด AppDelegate.swift ด้วยโค้ดต่อไปนี้ โค้ดนี้จะส่งผลให้ SDK เริ่มทำงานเมื่อมีการเปิดใช้แอพ และช่วยให้ SDK รองรับการเข้าสู่ระบบและการแชร์จากแอพ Facebook แบบเนทีฟได้ เมื่อคุณเข้าสู่ระบบหรือทำการแชร์ มิฉะนั้น ผู้ใช้จะต้องเข้าสู่ระบบ Facebook เพื่อใช้เบราว์เซอร์ในแอพในการเข้าสู่ระบบ
    
// AppDelegate.swift
import UIKit
import FacebookCore

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {    
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {          
        ApplicationDelegate.shared.application(
            application,
            didFinishLaunchingWithOptions: launchOptions
        )

        return true
    }
          
    func application(
        _ app: UIApplication,
        open url: URL,
        options: [UIApplication.OpenURLOptionsKey : Any] = [:]
    ) -> Bool {
        ApplicationDelegate.shared.application(
            app,
            open: url,
            sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
            annotation: options[UIApplication.OpenURLOptionsKey.annotation]
        )
    }  
}

iOS 13 ย้ายฟังก์ชั่นการทำงานการเปิด URL ไปยัง SceneDelegate หากคุณใช้งาน iOS 13 อยู่ ให้เพิ่มเมธอดต่อไปนี้ให้กับ SceneDelegate เพื่อให้การทำงานต่างๆ เช่น ฟังก์ชั่นการเข้าระบบหรือการแชร์ เป็นไปตามที่คาดหวัง
// SceneDelegate.swift
import FacebookCore
  ...
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
    guard let url = URLContexts.first?.url else {
        return
    }

    ApplicationDelegate.shared.application(
        UIApplication.shared,
        open: url,
        sourceApplication: nil,
        annotation: [UIApplication.OpenURLOptionsKey.annotation]
    )
}

ขั้นตอนที่ 4: สร้างโปรเจ็กต์ แล้วเรียกใช้ในโปรแกรมจำลอง

เลือกโปรแกรมจำลอง iOS แล้วคลิก Run (เรียกใช้) ใน Xcode Xcode จะสร้างโปรเจ็กต์ของคุณและเปิดใช้แอพของคุณเวอร์ชั่นล่าสุดที่ทำงานในโปรแกรมจำลอง

ขั้นตอนที่ 5: ดูผลลัพธ์ในตัวจัดการเหตุการณ์


ตัวจัดการเหตุการณ์จะแสดงเหตุการณ์ต่างๆ ที่คุณส่งไปยัง Facebook หากคุณเปิดใช้แอพด้วยโค้ดนี้เป็นครั้งแรก คุณอาจต้องรออย่างน้อย 20 นาที เหตุการณ์ของคุณจึงจะปรากฏขึ้น
หมายเหตุ: เหตุการณ์อาจใช้เวลาถึง 20 นาที จึงจะปรากฏขึ้นในแดชบอร์ด

ขั้นตอนถัดไป

หากต้องการเรียนรู้วิธีใช้งาน "เหตุการณ์ในแอพ" และผลิตภัณฑ์อื่นๆ ในเครือ Facebook กับแอพของคุณ ให้คลิกปุ่มใดปุ่มหนึ่งด้านล่างนี้

การแชร์ใน iOSเพิ่มการเข้าสู่ระบบด้วย Facebookเพิ่มเหตุการณ์ในแอพใช้ API กราฟ
การกำหนดค่าขั้นสูง