Quickstarters
Feature Overview
How to Build a Backend for tvOS?
40 นาที
บทนำ ในบทเรียนนี้ คุณจะได้เรียนรู้ วิธีสร้างแบ็กเอนด์สำหรับ tvos แอปโดยใช้ back4app เราจะพูดถึงการรวมฟีเจอร์สำคัญของ back4app—เช่น การจัดการฐานข้อมูล, ฟังก์ชัน cloud code, rest และ graphql apis, การตรวจสอบสิทธิ์ผู้ใช้, และการค้นหาแบบเรียลไทม์ (live queries)—เพื่อสร้างแบ็กเอนด์ที่ปลอดภัยและปรับขนาดได้ซึ่งสื่อสารกับ แอป apple tv ที่สร้างด้วย parse swift sdk คุณจะเห็นว่า สภาพแวดล้อมที่มีประสิทธิภาพและการตั้งค่าที่รวดเร็วของ back4app ช่วยลดเวลาได้อย่างมากเมื่อเปรียบเทียบกับการกำหนดค่าเซิร์ฟเวอร์และฐานข้อมูลด้วยตนเอง ในระหว่างทาง คุณจะได้รับประสบการณ์จริงกับฟังก์ชันการทำงานที่สำคัญ รวมถึงฟีเจอร์ความปลอดภัยขั้นสูง, การกำหนดเวลางานในคลาวด์, และการรวม webhook เมื่อสิ้นสุดบทเรียนนี้ คุณจะพร้อมที่จะพัฒนารูปแบบพื้นฐานนี้ให้เป็นแอป tvos ที่พร้อมสำหรับการผลิตหรือรวมตรรกะที่กำหนดเองและ apis ของบุคคลที่สามได้อย่างง่ายดาย คู่มือนี้ยังช่วยรักษาประสบการณ์ผู้ใช้ที่ มีคุณภาพสูง บน apple tv , โดยใช้ โปรเจกต์ xcode ของคุณและความรู้เกี่ยวกับ การพัฒนา ios ที่มีอยู่ ข้อกำหนดเบื้องต้น ในการทำบทเรียนนี้ให้เสร็จสมบูรณ์ คุณจะต้องมี บัญชี back4app และโปรเจกต์ back4app ใหม่ เริ่มต้นใช้งาน back4app https //www back4app com/docs/get started/new parse app หากคุณยังไม่มีบัญชี คุณสามารถสร้างบัญชีได้ฟรี ทำตามคำแนะนำข้างต้นเพื่อเตรียมโปรเจกต์ของคุณ ติดตั้ง xcode (เวอร์ชันที่เสถียรล่าสุด) คุณจะสร้าง แอป tvos ของคุณด้วย swift หรือ swiftui ตรวจสอบให้แน่ใจว่าคุณมี xcode เวอร์ชันล่าสุดจาก mac app store parse swift sdk ตั้งค่า parse swift sdk https //github com/netreconlab/parse swift เพื่อเชื่อมต่อแอป tvos ของคุณ ความคุ้นเคยกับ swift และแนวคิดพื้นฐานเกี่ยวกับการพัฒนา ios/tvos หากคุณเป็นมือใหม่ใน apple tv ให้ตรวจสอบ เอกสาร tvos ของ apple https //developer apple com/tvos/ หรือบทเรียนสำหรับผู้เริ่มต้นก่อน ตรวจสอบให้แน่ใจว่าคุณมีสิ่งที่จำเป็นทั้งหมดนี้ก่อนที่คุณจะเริ่มต้น การมีโปรเจกต์ back4app ของคุณพร้อมและ โปรเจกต์ xcode ที่ตั้งค่าไว้จะช่วยให้คุณติดตามได้ง่ายขึ้น ขั้นตอนที่ 1 – การสร้างโปรเจกต์ใหม่บน back4app และการเชื่อมต่อ สร้างโปรเจกต์ใหม่ ขั้นตอนแรกในการสร้าง แบ็กเอนด์แอป tvos ของคุณบน back4app คือการสร้างโปรเจกต์ใหม่ หากคุณยังไม่ได้ทำตามขั้นตอนเหล่านี้ เข้าสู่ระบบบัญชี back4app ของคุณ คลิกที่ปุ่ม “แอปใหม่” ในแดชบอร์ด back4app ของคุณ ตั้งชื่อแอปของคุณ (เช่น “tvos backend tutorial”) เมื่อสร้างเสร็จแล้ว คุณจะเห็นโปรเจกต์ที่แสดงในแดชบอร์ด back4app ของคุณ โปรเจกต์ back4app ใหม่นี้เป็นแกนหลักของการตั้งค่าทั้งหมดที่ครอบคลุมในบทช่วยสอนนี้ เชื่อมต่อกับ parse swift sdk back4app ใช้ parse เพื่อจัดการการจัดเก็บข้อมูล, การตรวจสอบสิทธิผู้ใช้, ฟีเจอร์เรียลไทม์, และอื่นๆ เพื่อเชื่อมต่อ tvos app ของคุณกับ back4app, ติดตั้งและกำหนดค่าซอฟต์แวร์ parse swift sdk ใน xcode project ดึงคีย์ parse ของคุณ ในแดชบอร์ด back4app ของคุณ, ไปที่ “app settings” หรือ “security & keys” เพื่อค้นหา application id และ client key คุณจะเห็น parse server url —โดยทั่วไปคือ https //parseapi back4app com ติดตั้ง parse swift sdk ในโปรเจกต์ tvos ของคุณ swift package manager (แนะนำ) ใน xcode, เลือก file → add packages ใส่ url github ของ parse swift https //github com/netreconlab/parse swift git เลือกเวอร์ชันที่เหมาะสมหรือสาขาหลัก cocoapods หากคุณชอบ cocoapods, ให้เพิ่มสิ่งต่อไปนี้ใน podfile ของคุณ pod 'parseswiftog' จากนั้นรัน pod install เริ่มต้น parse ใน appdelegate หรือ @main struct import parseswift import swiftui @main struct mytvosapp app { init() { task { do { try await parseswift initialize( applicationid "your app id", clientkey "your client key", serverurl url(string "https //parseapi back4app com")! ) } catch { print("error initializing parse \\\\(error)") } } } var body some scene { windowgroup { contentview() } } } สิ่งนี้ทำให้ tvos app ของคุณถูกสร้างขึ้นเพื่อสื่อสารกับ back4app backend ซึ่งช่วยให้คุณสามารถจัดเก็บข้อมูล รันคำค้น รับรองผู้ใช้ และอื่น ๆ ขั้นตอนที่ 2 – การตั้งค่าฐานข้อมูล การสร้างโมเดลข้อมูล เมื่อแอป tvos ของคุณเชื่อมต่อกับ back4app แล้ว คุณสามารถสร้างและจัดการข้อมูลได้ ใน parse swift คุณจะต้องกำหนด parseobject structs struct gamescore parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom fields var score int? var playername string? } คุณยังสามารถกำหนดคลาสด้วยตนเองในแดชบอร์ด back4app ของคุณ ไปที่ “ฐานข้อมูล” ในคอนโซล back4app สร้างคลาสใหม่ (เช่น “gamescore”) เพิ่มคอลัมน์ที่เกี่ยวข้อง (คะแนน, ชื่อผู้เล่น, ฯลฯ) การสร้างโมเดลข้อมูลโดยใช้ ai agent ai agent ของ back4app สามารถออกแบบสคีมาของคุณโดยอัตโนมัติ เปิด ai agent ในแดชบอร์ด back4app ของคุณ อธิบายโมเดลของคุณ (เช่น “สร้างคลาส todo ที่มีฟิลด์ชื่อและ iscompleted”) ใช้ และให้ ai agent สร้างสคีมา การอ่านและเขียนข้อมูลโดยใช้ sdk func savescore() async { var gamescore = gamescore() gamescore score = 1337 gamescore playername = "tvos fan" do { try await gamescore save() print("score saved successfully ") } catch { print("error saving score \\\\(error)") } } func fetchscores() async { let query = gamescore query() do { let results = try await query find() print("fetched scores \\\\(results)") } catch { print("error fetching scores \\\\(error)") } } การอ่านและเขียนข้อมูลโดยใช้ rest api curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"score" 9000, "playername" "applefan"}' \\ https //parseapi back4app com/classes/gamescore การอ่านและเขียนข้อมูลโดยใช้ graphql api mutation { creategamescore(input { fields { score 420 playername "swiftie" } }) { gamescore { objectid score playername } } } การทำงานกับ live queries (ไม่บังคับ) live queries สามารถให้การอัปเดตแบบเรียลไทม์ใน apple tv อินเทอร์เฟซ—โดยเฉพาะอย่างยิ่งมีประโยชน์สำหรับแอปหลายผู้เล่นหรือแอปอันดับคะแนน เปิดใช้งาน live queries ใน การตั้งค่าเซิร์ฟเวอร์ ของแอปของคุณบน back4app เริ่มต้น การสมัครสมาชิก let subscription = gamescore query("score" > 1000) subscribecallback { event in switch event { case created(let score) print("new high score created \\\\(score)") case updated(let score) print("high score updated \\\\(score)") case deleted(let score) print("high score removed \\\\(score)") default break } } ขั้นตอนที่ 3 – การใช้ความปลอดภัยด้วย acls และ clps ภาพรวม back4app ปกป้องข้อมูลของคุณด้วย acls (access control lists) และ clps (class level permissions) ใช้พวกเขาเพื่อกำหนดกฎการอ่าน/เขียนที่ระดับวัตถุหรือระดับคลาส class level permissions ไปที่ฐานข้อมูล , เลือกคลาส (เช่น gamescore) คลิก “ความปลอดภัย” หรือ “class level permissions” กำหนดว่าใครสามารถอ่าน เขียน หรือ ลบ (เช่น ผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์เท่านั้น) acls ในโค้ด var gamescore = gamescore() gamescore score = 500 // restrict read/write to only the current user var acl = parseacl() if let user = try? await user current() { acl setreadaccess(user user, value true) acl setwriteaccess(user user, value true) } gamescore acl = acl ขั้นตอนที่ 4 – การเขียนฟังก์ชัน cloud code ทำไมต้องใช้ cloud code? cloud code ช่วยให้คุณสามารถถ่ายโอนตรรกะที่สำคัญจากไคลเอนต์ไปยังโค้ดฝั่งเซิร์ฟเวอร์ที่ปลอดภัย ซึ่งเหมาะสำหรับกฎธุรกิจ การตรวจสอบข้อมูล หรือการรวมระบบของบุคคลที่สามโดยไม่เปิดเผยความลับในแอป tvos ของคุณ ฟังก์ชันตัวอย่าง ใน main js parse cloud define("awardbonus", async (request) => { const { objectid, bonus } = request params; const query = new parse query("gamescore"); const gamescore = await query get(objectid, { usemasterkey true }); gamescore increment("score", bonus); await gamescore save(null, { usemasterkey true }); return gamescore; }); การปรับใช้ back4app cli b4a configure accountkey b4a deploy หรือใช้ back4app dashboard → cloud code → functions → main js การเรียกจาก swift import parseswift func awardbonusscore(objectid string, bonus int) async { do { let result = try await parsecloud callfunction("awardbonus", with \[ "objectid" objectid, "bonus" bonus ]) print("updated score \\\\(result)") } catch { print("error awarding bonus \\\\(error)") } } โมดูล npm ภายใน package json , เพิ่มการพึ่งพา { "dependencies" { "axios" "^0 27 0" } } จากนั้นให้เรียกใช้หรือนำเข้าพวกเขาใน main js เพื่อใช้ใน cloud code ขั้นตอนที่ 5 – การกำหนดค่าการตรวจสอบสิทธิ การตรวจสอบสิทธิผู้ใช้ใน back4app แอป tvos มักต้องการการซิงค์ข้อมูลผู้ใช้หรือการเข้าสู่ระบบ parseuser ให้การลงทะเบียนที่ปลอดภัย การเข้าสู่ระบบ เซสชัน และการเข้าถึงตามบทบาท struct user parseuser { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // essential var username string? var email string? var emailverified bool? var password string? var authdata \[string \[string string]?]? } ลงทะเบียน / เข้าสู่ระบบ func signupuser() async { var newuser = user() newuser username = "tvuser" newuser password = "secret" newuser email = "user\@example com" do { try await newuser signup() print("sign up successful ") } catch { print("error signing up \\\\(error)") } } func loginuser() async { do { let loggedin = try await user login(username "tvuser", password "secret") print("logged in as \\\\(loggedin username ?? "")") } catch { print("login error \\\\(error)") } } การเข้าสู่ระบบด้วยโซเชียล กำหนดค่า การเข้าสู่ระบบด้วย facebook หรือ apple https //www back4app com/docs/platform/sign in with apple จากนั้นเชื่อมโยงบัญชี try await user link(with apple(idtoken "token", rawnonce "nonce")) ขั้นตอนที่ 6 – การจัดการการจัดเก็บไฟล์ การตั้งค่าการจัดเก็บไฟล์ อัปโหลดภาพผู้ใช้, การเล่นเกมซ้ำ, หรือทรัพย์สินของแอปโดยใช้ parsefile let filedata = data( ) // e g image bytes let file = parsefile(name "preview\ png", data filedata) do { let savedfile = try await file save() print("file uploaded \\\\(savedfile url)") } catch { print("error uploading file \\\\(error)") } ตัวอย่าง แนบไฟล์กับวัตถุ struct gamemedia parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var screenshot parsefile? } ข้อพิจารณาด้านความปลอดภัย ใช้ clps หรือ acls เพื่อรักษาความปลอดภัยของการอ้างอิงไฟล์ url โดยตรงของไฟล์อาจเข้าถึงได้สาธารณะ เว้นแต่คุณจะเปิดใช้งาน ความปลอดภัยของไฟล์ https //www back4app com/docs/security/parse security ขั้นตอนที่ 7 – การตรวจสอบอีเมลและการรีเซ็ตรหัสผ่าน ภาพรวม การตรวจสอบอีเมลช่วยยืนยันความเป็นเจ้าของบัญชีอีเมลของผู้ใช้ การรีเซ็ตรหัสผ่านเสนอวิธีที่ปลอดภัยและใช้งานง่ายในการเข้าถึงบัญชีอีกครั้ง การกำหนดค่าดashboard back4app ในแอปของคุณ → การตั้งค่าแอป → อีเมล เปิดใช้งานการตรวจสอบอีเมล หรือ การรีเซ็ตรหัสผ่าน ปรับแต่ง เทมเพลตอีเมล การนำรหัสไปใช้ func requestpasswordreset(for email string) async { do { try await user passwordreset(email email) print("password reset link sent ") } catch { print("error requesting password reset \\\\(error)") } } ขั้นตอนที่ 8 – การกำหนดตารางงานด้วย cloud jobs cloud jobs ทำให้การทำงานซ้ำอัตโนมัติ เช่น การลบข้อมูลเก่าหรือการส่งอีเมลอัปเดตประจำเดือน parse cloud job("cleanupoldscores", async (request) => { const now = new date(); const thirtydaysago = new date(now 30 24 60 60 1000); const query = new parse query("gamescore"); query lessthan("createdat", thirtydaysago); const oldscores = await query find({ usemasterkey true }); await parse object destroyall(oldscores, { usemasterkey true }); return `deleted ${oldscores length} old scores `; }); ใน back4app dashboard → การตั้งค่าแอป → การตั้งค่าเซิร์ฟเวอร์ → งานเบื้องหลัง , กำหนดตาราง “cleanupoldscores” ให้ทำงานทุกวัน ขั้นตอนที่ 9 – การรวม webhooks คำจำกัดความ webhooks ช่วยให้แอป back4app ของคุณสามารถส่งเหตุการณ์ไปยังบริการภายนอกได้ ซึ่งอาจเป็นการส่งการแจ้งเตือนไปยัง slack การอัปเดตการชำระเงินไปยัง stripe หรือข้อมูลการวิเคราะห์ไปยังเซิร์ฟเวอร์ของคุณ การกำหนดค่า ใน back4app dashboard ของคุณ ไปที่ เพิ่มเติม → webhooks → เพิ่ม webhook ระบุ endpoint (เช่น https //myserver com/webhook endpoint ) และการกระตุ้น (การอัปเดตวัตถุ บันทึกใหม่ ฯลฯ) ตัวอย่าง แจ้ง slack เมื่อมีการสร้างคะแนนสูงใหม่ parse cloud aftersave("gamescore", async (request) => { const score = request object get("score"); await sendtoslack(`a new high score of ${score} was posted!`); }); ขั้นตอนที่ 10 – สำรวจแผงผู้ดูแลระบบ back4app หาที่ไหน แอป back4app admin app เป็นแดชบอร์ดที่ใช้งานง่ายและ มุ่งเน้นโมเดล สำหรับการจัดการข้อมูล การดำเนินการ crud หรือการแก้ไขคลาส—โดยไม่ต้องใช้การสอบถามฐานข้อมูลโดยตรง เปิดใช้งานผ่าน app dashboard → เพิ่มเติม → admin app ฟีเจอร์ เมื่อเปิดใช้งานแล้ว คุณสามารถเชิญสมาชิกในทีมหรือผู้ใช้บริการให้จัดการข้อมูล ตรวจสอบบันทึก หรือปรับการแจ้งเตือน—โดยพื้นฐานแล้วให้พวกเขามีพอร์ทัลโดยตรงไปยังแบ็กเอนด์ของ แอป tvos ของคุณ บทสรุป โดยการติดตามบทแนะนำที่ครอบคลุมนี้ คุณได้ สร้างแบ็คเอนด์ที่ปลอดภัย สำหรับ แอป tvos ของคุณโดยใช้ back4app กำหนดค่าฐานข้อมูล ด้วยคลาส ประเภทข้อมูล และความสัมพันธ์ ตั้งค่าการค้นหาแบบเรียลไทม์ เพื่อสะท้อนการเปลี่ยนแปลงทันที ใช้มาตรการรักษาความปลอดภัย ผ่าน acls และ clps นำ cloud code มาใช้ สำหรับตรรกะธุรกิจและการรวมระบบที่กำหนดเอง เปิดใช้งานการตรวจสอบสิทธิ์ ด้วยการยืนยันอีเมลและการรีเซ็ตรหัสผ่าน จัดการการอัปโหลดไฟล์ พร้อมตัวควบคุมความปลอดภัยที่เลือกได้ กำหนดตารางงาน cloud สำหรับงานประจำ ใช้เว็บฮุค เพื่อรวมกับบริการภายนอก สำรวจแผงผู้ดูแลระบบ เพื่อจัดการและติดตามข้อมูล ตอนนี้คุณมีความพร้อมที่จะสร้างประสบการณ์ apple tv ที่มีคุณภาพสูง คุณภาพสูง แอปของคุณ ถูกสร้างขึ้น บนพื้นฐานที่แข็งแกร่ง—สนุกกับการเปลี่ยนไอเดีย แอป tvos ของคุณให้เป็นจริง! ขั้นตอนถัดไป ปรับปรุง ui ของ tvos ของคุณ รวมการนำทางที่เน้นการโฟกัส, การไหลของผู้ใช้บนหน้าจอขนาดใหญ่, และ แนวทางปฏิบัติที่ดีที่สุดของ app store เพิ่มความปลอดภัย เพิ่ม acl ที่อิงตามบทบาท, การตรวจสอบสิทธิ์หลายปัจจัย, หรือการเข้ารหัสขั้นสูง เพิ่มพูนทักษะของคุณ สำรวจฟีเจอร์ parse swift ที่ซับซ้อนมากขึ้น เช่น การแคชแบบออฟไลน์หรือการวิเคราะห์ที่กำหนดเอง ตรวจสอบเอกสารทางการ เอกสาร back4app https //www back4app com/docs และ เอกสาร apple tvos https //developer apple com/tvos/ เพื่อความรู้ที่ลึกซึ้งยิ่งขึ้น การสร้างรายได้ พิจารณาการสมัครสมาชิกหรือการจ่ายต่อการรับชมเพื่อขยายศักยภาพธุรกิจสตรีมมิ่งของคุณ ด้วยพื้นฐานจากคู่มือนี้ คุณสามารถดำเนินการนวัตกรรมและรวมฟีเจอร์ใหม่ ๆ ต่อไป ขอให้โชคดีในการนำ แอป tvos ของคุณ ไปสู่ระดับถัดไป!