คำถามที่พบบ่อยและการแก้ปัญหาเกี่ยวกับ Android SDK ของ Facebook

คำถามที่พบบ่อย

สำหรับ Android 11 คุณสามารถเพิ่มบล็อก queries ต่อไปนี้ใน AndroidMainfest.xml ของโปรเจ็กต์เพื่อแก้ปัญหาได้:

<manifest package="com.example.app"> <queries> <provider android:authorities="com.facebook.katana.provider.PlatformProvider" /> </queries> ... </manifest>

คุณสามารถใช้ ID ของแอพบน Facebook ได้ในแอพ Android หลายแอพ เพียงใช้ ID ของแอพเดียวกันในแอพอื่นในการเข้าสู่ระบบ การแชร์ และการดำเนินการอื่นๆ

สำหรับการเชื่อมโยงตรงและการเปิดแอพผ่านการแจ้งเตือนหรือผ่านช่องทางอื่น เราจะสนับสนุนเฉพาะการผสมชื่อจากชื่อ/คลาสแพ็คเกจเดียวเท่านั้น

หากต้องการความช่วยเหลือในการทำดีปลิงก์หลายแอพ โปรดดู ลิงก์ที่ไปยังแอพ

คุณสามารถเขียนทับสตริงใน Facebook SDK สำหรับ Android ได้โดยการระบุคำแปลในไฟล์ strings.xml ของคุณในระบบภาษาที่ต้องการ

ไฟล์ strings.xml ในไดเรกทอรี facebook/res/values/ ประกอบด้วยสตริงทั้งหมดที่ SDK ใช้ ชื่อแหล่งข้อมูลสตริงควรอ่านแล้วเข้าใจได้ทันที

สำหรับข้อมูลเพิ่มเติม โปรดดูคู่มือสำหรับผู้พัฒนา Android: การแปลเป็นภาษาท้องถิ่นโดยใช้แหล่งข้อมูล

คุณสามารถดาวน์โหลด SDK เวอร์ชั่นก่อนหน้าได้ที่ SDK downloads

ทุกรีลีสของ Facebook SDK สำหรับ Android ที่มีกล่องการแชร์แบบเนทีฟทั้งหมดมี APK สำหรับแอพ Facebook ด้วย

APK จะอยู่ในการดาวน์โหลด SDK จนถึงเวอร์ชั่น 3.14.1 หลังจากเวอร์ชั่นนี้จะต้องดาวน์โหลดแยกจากกัน คุณสามารถหา APK ได้ใน[เพจดาวน์โหลด]ของเรา(/docs/android/downloads)

เพียงติดตั้ง Facebook APK ในโปรแกรมจำลองหรืออุปกรณ์ Android ของคุณแล้วทำการทดสอบกล่องการแชร์แบบเนทีฟจากแอพของคุณ

โดยปกติแล้วไลบรารีของ Android จะสามารถใช้ BuildConfig.DEBUG เพื่อระบุว่าแอพอยู่ในโหมดการแก้ไขจุดบกพร่องหรือไม่ได้ อย่างไรก็ตาม เนื่องจากจุดบกพร่องใน Gradle ไลบรารีของ Android จึงมีการสร้างขึ้นพร้อมการตั้งค่า DEBUG เป็นเท็จ ในการแก้ไขปัญหานี้ มีวิธีการ FacebookSdk.setIsDebugEnabled(boolean) ที่ให้คุณสามารถตั้งค่าโหมดการแก้ไขจุดบกพร่องจากแอพของคุณได้โดยตรง และเป็นการเปิดใช้งานการบันทึกการแก้ไขจุดบกพร่องจาก SDK

นอกจากนี้คุณยังตั้งค่าพฤติกรรมการบันทึกได้ด้วย FacebookSdk.addLoggingBehavior(LogginBehavior) เพื่อเปิดใช้งานการบันทึกสำหรับหมวดหมู่ต่างๆ ของข้อความ โปรดดูข้อมูลอ้างอิง SDK สำหรับ Android, LoggingBehavior

กล่องการแชร์จะทำการเรียกกลับไปยัง onSuccess และ onCancel เมื่อผู้ใช้ดำเนินการ

  • onSuccess เมื่อผู้ใช้แชร์สำเร็จ นอกจากนี้ยังมี postId in the Sharer.Result ในคลาส publish_actions หากผู้ใช้ให้สิทธิ์การอนุญาต publish_actions กับแอพ หากผู้ใช้ดังกล่าวไม่ได้เข้าสู่ระบบด้วยการเข้าสู่ระบบด้วย Facebook วิธีการนี้ยังจะได้รับการเรียกหากผู้ใช้คลิก ยกเลิก
  • onCancel เมื่อมีผู้คลิกที่ปุ่ม X ของกล่องการแชร์ หรือหากผู้ใช้เข้าสู่ระบบด้วยการเข้าสู่ระบบด้วย Facebook แล้วคลิก ยกเลิก

การแก้ปัญหา

เมื่อส่งคำขอสิทธิ์การเผยแพร่ คุณอาจได้รับข้อผิดพลาด ดังนี้

  • “เซสชั่น: มีการพยายามขอสิทธิ์การอนุญาตใหม่สำหรับเซสชั่นที่มีคำขอที่รอดำเนินการอยู่” หรือ
  • “พยายามอนุญาตขณะที่มีคำขอรอดำเนินการอยู่”

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

ดูแอพตัวอย่างของเราที่มากับ SDK เช่น Scrumptious หรือ Hello Facebook เพื่อดูว่าจะทำการส่งคำขอใหม่ได้อย่างไรตามขั้นตอนต่างๆ มากมาย

หากไม่มีข้อผิดพลาดในบันทึก สาเหตุของปัญหาอาจเกิดจากการไม่ดำเนินการตามคำขอ หากต้องการดำเนินการ GraphRequest ให้เรียกวิธีการ executeAsync

ในการเข้าสู่ระบบหรือใช้กล่องการแชร์แบบเนทีฟ คุณต้องบอก Facebook ให้ทราบถึงคีย์ที่คุณใช้ในการเข้าใช้งานแอพของคุณ

ซึ่งเป็นแฮชคีย์ที่เป็นแฮช SHA-1 ของคีย์ที่ใช้สำหรับการลงชื่อแอพของคุณ โดยปกติแล้วจะมีคีย์อย่างน้อยสองคีย์ที่แตกต่างกัน โดยคีย์แรกใช้เพื่อพัฒนาและการแก้ไขจุดบกพร่อง และอีกคีย์ใช้สำหรับการเผยแพร่ ตรวจสอบยืนยันว่ามีการเพิ่มทั้งสองค่าในเพจการตั้งค่าของแอพของคุณ

สำหรับข้อมูลเพิ่มเติม โปรดดู การเริ่มต้นใช้งาน SDK สำหรับ Android - สร้างแฮชคีย์สำหรับการพัฒนา

สาเหตุที่พบบ่อยคือ คุณไม่ได้ตั้งค่า ContentProvider ใน AndroidManifest.xml ของคุณ ตรวจสอบว่าคุณได้เพิ่มข้อมูลนี้ในไฟล์ AndroidManifest.xml พร้อมด้วย ID ของแอพแล้ว โปรดดู การแชร์บน Android - ข้อกำหนดที่ต้องทำก่อน