คุณสามารถใช้ ID แอพบน Facebook เดียวในแอพ iOS ต่างๆ ได้ เช่น ระหว่างแอพในเวอร์ชั่นฟรีและเวอร์ชั่นชำระเงินของคุณ
กำหนดพารามิเตอร์ต่อท้ายแผน URL FacebookUrlSchemeSuffix
ในไฟล์ .plist
ของแอพของคุณ
หมายเหตุ: คำต่อท้ายใช้ได้กับอักขระตัวอักษรเท่านั้น
SDK zip มี FacebookSDKStrings.bundle
ที่มีสตริงที่แปลเป็นภาษาท้องถิ่นแล้วสำหรับทรัพยากร SDK ให้รวมชุดลงในแอพของคุณแล้วเปิดใช้งาน Base Internationalization ตามที่ระบุในเอกสารของ Apple
คุณสามารถดาวน์โหลด SDK เวอร์ชั่นเก่าได้จาก พื้นที่ดาวน์โหลดของ iOS
เนื่องจากกล่องโต้ตอบแชร์แบบเนทีฟเป็นส่วนหนึ่งของแอพ iOS ของ Facebook จึงไม่สามารถเรียกใช้บนโปรแกรมจำลองได้ ใช้อุปกรณ์จริงในการทดสอบกล่องโต้ตอบแชร์แบบเนทีฟ เรากำลังหาวิธีในการทำให้สามารถทดสอบในกล่องโต้ตอบการแชร์รูปแบบเนทีฟบนโปรแกรมจำลองได้
ตรวจสอบให้แน่ใจว่าคุณข้อความนำเข้าที่ถูกต้องที่ด้านบนสุดของไฟล์แต่ละไฟล์ที่คุณกำลังพยายามใช้คลาส Facebook SDK ตัวอย่างเช่น
#import <FBSDKCoreKit/FBSDKCoreKit.h> #import <FBSDKShareKit/FBSDKShareKit.h> #import <FBSDKLoginKit/FBSDKLoginKit.h>
เมื่อใช้เฟรมเวิร์กใน Objective-C คลาสที่ใช้หมวดหมู่เพื่อขยายคลาสที่มีอยู่เดิมไม่ถูกโหลดโดยอัตโนมัติ
เมื่อคุณพยายามเรียกวิธีที่ได้รับการขยายในคลาสเหล่านี้ คุณจะได้รับข้อผิดพลาด มีการส่งตัวเลือกที่ไม่รู้จักไปยังอินสแตนซ์
คลาสที่ใช้จากตัวสร้างอินเทอร์เฟซ Xcode จะไม่โหลดโดยอัตโนมัติ ตัวอย่างเช่น เมื่อคุณเพิ่ม FBSDKLoginButton
ในอินเทอร์เฟซของคุณโดยการวาดมุมมองในไฟล์ .xib ของคุณ แล้วตั้งค่าเป็น FBSDKLoginButton
จาก UI ตัวสร้างอินเทอร์เฟซ ดังนั้น เมื่อคุณพยายามเรียกวิธีการเหล่านี้ คุณจะได้รับข้อผิดพลาด มีการส่งตัวเลือกที่ไม่รู้จักไปยังอินสแตนซ์
ในการแก้ไขปัญหานี้ คุณมีสองตัวเลือก
คุณสามารถโหลดคลาสด้วยตนเองใน application:didFinishLaunchingWithOptions:
ของตัวแทนของแอพของคุณ โดยเรียก:
[FBSDKLoginButton class];
หรือคุณสามารถเพิ่มแฟล็กตัวลิงก์ -ObjC
แฟล็กนี้จะบอกให้ตัวลิงก์โหลดไฟล์ทุกอ็อบเจ็กต์ใน SDK ที่กำหนดคลาส Objective-C หรือหมวดหมู่ วิธีนี้จะทำให้คลาสของเราทั้งหมดใช้งานได้ตั้งแต่เริ่มต้น แต่จะเพิ่มขนาดของไฟล์ที่สามารถดำเนินการได้ (เนื่องจากมีรหัสอ็อบเจ็กต์เพิ่มเติมที่โหลดเข้าไปในแอพพลิเคชั่น)
ในการเพิ่มแฟล็ก -ObjC
ให้คลิกเป้าหมายโปรเจ็กต์ แล้วเลือกแท็บ "การตั้งค่าบิลด์" ที่จุดนี้ ภายใต้ “การเชื่อมโยง” ให้คลิกสองครั้งที่ “แฟล็กตัวลิงก์อื่นๆ” เพื่อเพิ่ม -ObjC
FBSDKRequestConnection
จะใช้ NSURLConnection
ซึ่งจะต้องมี [RunLoop] ที่ใช้งานอยู่ (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSRunLoop_Class/Reference/Reference.html) ถ้าคุณกำลังใช้นอกเธรดหลัก คุณต้องจัดการด้วยตัวคุณเอง
หรืออีกวิธีหนึ่ง คุณสามารถตั้งค่าคุณสมบัติ delegateQueue
บน FBSDKRequestConnection
เป็นเรื่องปกติที่จะมีข้อผิดพลาดในการกำหนดค่าใน .plist
ตรวจสอบว่า .plist
มีแถวสำหรับ FacebookAppID
และ FacebookDisplayName
และรายการประเภท URL สำหรับ fb{app-id}
ถ้าคุณได้รับผลลัพธ์ที่ไม่คาดคิดเมื่อทำการร้องขอ API กราฟ ให้เปิดใช้งานโหมดแก้ไขจุดบกพร่องโดยการเพิ่มโค้ดนี้ก่อนส่งคำขอใดๆ:
[FBSettings setLoggingBehavior: [NSSet setWithObject:FBSDKLoggingBehaviorGraphAPIDebugInfo]];
ใช้ FBSDKLoggingBehaviorGraphAPIDebugWarning
หากคุณต้องการระงับข้อความระดับข้อมูลและเก็บเฉพาะคำเตือน
การเปิดใช้งานลักษณะการบันทึกนี้จะเพิ่มพารามิเตอร์ debug
ทั้งหมดในคำขอ API กราฟ และค่าที่แสดงใดๆ ที่เกิดขึ้นเกี่ยวกับปัญหาในคอนโซล
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับโหมดแก้ไขจุดบกพร่องของ API กราฟได้[ที่นี่] (/docs/graph-api/using-graph-api/v2.3#debugging)
SDK จะรายงานการยกเลิก หากผู้ใช้แตะที่ปุ่มยกเลิกในข้อความโต้ตอบเพื่อเข้าสู่ระบบโดยชัดแจ้ง หรือหากมีการสลับแอพด้วยตนเองกลับไปที่แอพของคุณ (หรือที่เรียกว่าการยกเลิกโดยนัย) คุณควรตรวจสอบให้แน่ใจว่าคุณไม่ได้กำลังเริ่มต้นลำดับขั้นตอนการเข้าสู่ระบบโดยเป็นส่วนหนึ่งของวงจรชีวิตของตัวแทนแอพของคุณ (เช่น การเริ่มต้นการเข้าสู่ระบบใน application:openURL:sourceApplication:annotation:
) เพราะจะเป็นการเลียนแบบการยกเลิกโดยนัย หากคุณจะต้องทำเช่นนั้น ให้จัดส่งการเริ่มต้นการเข้าสู่ระบบในภายหลังไปที่คิวหลัก เพื่อให้วงจรชีวิตของตัวแทนแอพเสร็จสมบูรณ์ก่อน
กล่องการแชร์จะแจ้งวิธีการของ sharer:didCompleteWithResults:
และ sharerDidCancel:
ของตัวแทนเมื่อมีการดำเนินการของผู้ใช้
sharer:didCompleteWithResults:
เมื่อผู้ใช้แชร์สำเร็จ นอกจากนี้ยังมีคีย์ postId
ในพจนานุกรม ผลลัพธ์
หากผู้ใช้ให้สิทธิ์การอนุญาต publish_actions
กับแอพ หากผู้ใช้ดังกล่าวไม่ได้เข้าสู่ระบบด้วยการเข้าสู่ระบบด้วย Facebook วิธีการนี้ยังจะได้รับการเรียกหากผู้ใช้คลิก ยกเลิก
sharerDidCancel:
เมื่อมีผู้คลิกที่ปุ่ม X
ของกล่องการแชร์ หรือหากผู้ใช้เข้าสู่ระบบด้วยการเข้าสู่ระบบด้วย Facebook แล้วคลิก ยกเลิก
หากคุณได้รับผลลัพธ์ที่ไม่คาดคิดเมื่อส่งคำขอ ให้เปิดการแก้ไขจุดบกพร่องสำหรับ FBSDKGraphRequests
เพิ่มโค้ดนี้ก่อนคำขอใดๆ:
[FBSDKSettings enableLoggingBehavior:FBSDKLoggingBehaviorNetworkRequests];
คุณจะสามารถแก้ไขจุดบกพร่องของปัญหาใดๆ ได้โดยการดูคำขอและการตอบจากเซิร์ฟเวอร์โดยตรง
ลองพิจารณาดูที่ค่าคงที่ FBSDKLoggingBehavior*
อื่นๆ ที่กำหนดไว้ใน FBSDKSettings.h
สำหรับสิ่งอื่นที่คุณสามารถบันทึกได้