สร้างลิงก์แบบไดนามิกด้วย C++

คุณสามารถสร้างลิงก์ไดนามิกแบบสั้นหรือยาวได้ด้วย Firebase Dynamic Links API API ใช้โครงสร้างพารามิเตอร์ทางเลือกหลายตัวเพื่อสร้างลิงก์ ลิงก์แบบสั้นสามารถสร้างได้จากลิงก์แบบยาวที่สร้างไว้ก่อนหน้านี้ Firebase Dynamic Links สร้าง URL ดังต่อไปนี้:

https://example.page.link/WXYZ

C++ SDK ใช้งานได้ทั้ง Android และ iOS โดยต้องมีการตั้งค่าเพิ่มเติมบางอย่างสำหรับแต่ละแพลตฟอร์มd

ก่อนที่คุณจะเริ่ม

ก่อนที่คุณจะสามารถใช้ Firebase Dynamic Links คุณต้อง:

  • ลงทะเบียนโปรเจ็กต์ C++ ของคุณและกำหนดค่าให้ใช้ Firebase

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

  • เพิ่ม Firebase C++ SDK ให้กับโปรเจ็กต์ C++ ของคุณ

โปรดทราบว่าการเพิ่ม Firebase ลงในโปรเจ็กต์ C++ ของคุณเกี่ยวข้องกับงานทั้งใน คอนโซล Firebase และในโปรเจ็กต์ C++ ที่เปิดอยู่ (เช่น คุณดาวน์โหลดไฟล์การกำหนดค่า Firebase จากคอนโซล จากนั้นย้ายไฟล์เหล่านั้นไปยังโปรเจ็กต์ C++ ของคุณ)

หุ่นยนต์

  1. ในคอนโซล Firebase ให้เปิดส่วน ลิงก์แบบไดนามิก
  2. หากคุณยังไม่ได้ยอมรับข้อกำหนดในการให้บริการและตั้งค่าคำนำหน้า URI สำหรับลิงก์ไดนามิกของคุณ ให้ดำเนินการเมื่อได้รับแจ้ง

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

  3. แนะนำ : ระบุรูปแบบ URL ที่อนุญาตในลิงก์ในรายละเอียดและลิงก์สำรองของคุณ การทำเช่นนี้จะเป็นการป้องกันไม่ให้บุคคลที่ไม่ได้รับอนุญาตสร้างลิงก์แบบไดนามิกที่เปลี่ยนเส้นทางจากโดเมนของคุณไปยังไซต์ที่คุณไม่ได้ควบคุม ดู รูปแบบ URL ที่อนุญาตพิเศษ

ไอโอเอส

  1. ในคอนโซล Firebase ให้เปิดส่วน ลิงก์แบบไดนามิก
  2. หากคุณยังไม่ได้ยอมรับข้อกำหนดในการให้บริการและตั้งค่าคำนำหน้า URI สำหรับลิงก์ไดนามิกของคุณ ให้ดำเนินการเมื่อได้รับแจ้ง

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

  3. ไลบรารีไคลเอ็นต์ Firebase Dynamic Links C++ ใช้รูปแบบ URL ที่กำหนดเองบน iOS เพื่อประมวลผลลิงก์ คุณต้องเพิ่มรูปแบบ URL ที่กำหนดเองให้กับแอปของคุณเพื่อรองรับการรับลิงก์แบบไดนามิก:
    1. หากต้องการเปิดการกำหนดค่าโปรเจ็กต์ของคุณ ให้คลิกสองครั้งที่ชื่อโปรเจ็กต์ในมุมมองแผนผังด้านซ้าย เลือกแอปของคุณจากส่วน เป้าหมาย จากนั้นเลือกแท็บ ข้อมูล และขยายส่วน ประเภท URL
    2. คลิกปุ่ม + และเพิ่มรูปแบบ URL สำหรับรหัสไคลเอ็นต์ที่กลับรายการของคุณ หากต้องการค้นหาค่านี้ ให้เปิดไฟล์การกำหนดค่า GoogleService-Info.plist และมองหาคีย์ REVERSED_CLIENT_ID คัดลอกค่าของคีย์นั้น และวางลงในกล่อง URL Schemes บนหน้าการกำหนดค่า ปล่อยให้ช่องอื่นๆ ว่างไว้
    3. คลิกปุ่ม + และเพิ่มรูปแบบ URL ที่สอง อันนี้เหมือนกับรหัสบันเดิลของแอปของคุณ ตัวอย่างเช่น หาก ID ชุดของคุณคือ com.example.ios ให้พิมพ์ค่านั้นลงในช่อง URL Schemes คุณสามารถค้นหา Bundle ID ของแอปได้ในแท็บ ทั่วไป ของการกำหนดค่าโปรเจ็กต์ ( Identity > Bundle Identifier )

ใช้คอนโซล Firebase

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

โดเมนที่กำหนดเอง

คุณสามารถควบคุมการสร้างแบรนด์ของลิงก์แบบไดนามิกได้ดียิ่งขึ้นโดยใช้โดเมนของคุณเองแทนโดเมนย่อย goo.gl หรือ page.link ทำตาม คำแนะนำเหล่านี้ เพื่อตั้งค่าโดเมนที่กำหนดเองสำหรับโปรเจ็กต์ของคุณ

การใช้ Firebase Dynamic Links API

สร้างและเริ่มต้นแอป

ก่อนที่คุณจะสามารถสร้างลิงก์แบบไดนามิกได้ คุณจะต้องสร้างและเริ่มต้นออบเจ็กต์ firebase::App

รวมไฟล์ส่วนหัวสำหรับ firebase::App :

#include "firebase/app.h"

ส่วนถัดไปจะแตกต่างกันไปขึ้นอยู่กับแพลตฟอร์มของคุณ:

หุ่นยนต์

สร้าง firebase::App ผ่านสภาพแวดล้อม JNI และการอ้างอิง jobject ไปยังกิจกรรม Java เป็นอาร์กิวเมนต์:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);

ไอโอเอส

สร้าง firebase::App :

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));

เริ่มต้นไลบรารีลิงก์แบบไดนามิก

ก่อนที่จะสร้างลิงก์แบบไดนามิก คุณต้อง เริ่มต้น ไลบรารีลิงก์แบบไดนามิกก่อน:

::firebase::dynamic_links::Initialize(app, null);

การสร้างไดนามิกลิงก์แบบยาวจากพารามิเตอร์

หากต้องการสร้างลิงก์แบบไดนามิก ให้สร้างอ็อบเจ็กต์ DynamicLinkComponents ตั้งค่าสมาชิกทางเลือกใดๆ สำหรับการกำหนดค่าเพิ่มเติม และส่งผ่านไปยัง dynamic_links::GetShortLink หรือ dynamic_links::GetLongLink

ตัวอย่างขั้นต่ำต่อไปนี้จะสร้างลิงก์ไดนามิกขนาดยาวไปยัง https://www.example.com/ ที่เปิดขึ้นด้วยแอป Android ของคุณ com.example.android.package_name และแอป iOS com.example.ios:

firebase::dynamic_links::IOSParameters ios_parameters("com.example.ios");

firebase::dynamic_links::AndroidParameters android_parameters(
    "com.example.android.package_name");

firebase::dynamic_links::DynamicLinkComponents components(
    "https://www.example.com/", "example.page.link");
components.android_parameters = &android_parameters;
components.ios_parameters = &ios_parameters;

firebase::dynamic_links::GeneratedDynamicLink long_link =
    firebase::dynamic_links::GetLongLink(components);

การสร้างไดนามิกลิงก์แบบสั้น

หากต้องการสร้างลิงก์ไดนามิกแบบสั้น ให้ส่งลิงก์แบบยาวที่สร้างไว้ก่อนหน้านี้ไปที่ GetShortLink หรือสร้าง DynamicLinkComponents แบบเดียวกับด้านบน

GetShortLink เลือกใช้พารามิเตอร์การกำหนดค่า DynamicLinkOptions พิเศษด้วย PathLength ; สิ่งนี้ช่วยให้คุณควบคุมวิธีการสร้างลิงค์ได้ การสร้างลิงก์แบบสั้นจำเป็นต้องมีคำขอเครือข่ายไปยังแบ็กเอนด์ Firebase ดังนั้น GetShortLink จึงไม่ซิงโครนัส โดยส่งคืน Future<GeneratedLink>

ตัวอย่างเช่น:

firebase::dynamic_links::DynamicLinkOptions short_link_options;
short_link_options.path_length = firebase::dynamic_links::kPathLengthShort;

firebase::Future<firebase::dynamic_links::GeneratedDynamicLink> result =
    firebase::dynamic_links::GetShortLink(components, short_link_options);

หากโปรแกรมของคุณมีลูปการอัปเดตที่ทำงานเป็นประจำ (เช่น 30 หรือ 60 ครั้งต่อวินาที) คุณสามารถตรวจสอบผลลัพธ์ได้หนึ่งครั้งต่อการอัพเดต:

if (result.status() == firebase::kFutureStatusComplete) {
  if (result.error() == firebase::dynamic_links::kErrorCodeSuccess) {
    firebase::dynamic_links::GeneratedDynamicLink link = *result.result();
    printf("Create short link succeeded: %s\n", link.url.c_str());
  } else {
    printf("Created short link failed with error '%s'\n",
           result.error_message());
  }
}