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

คุณสร้าง Dynamic Links แบบสั้นหรือยาวได้ด้วย 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++)

Android

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

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

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

iOS

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

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

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

ใช้คอนโซล Firebase

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

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

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

การใช้ Firebase Dynamic Links API

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

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

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

#include "firebase/app.h"

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

Android

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

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

iOS

สร้าง firebase::App โดยทำดังนี้

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

เริ่มต้นไลบรารี Dynamic Links

ก่อนสร้าง Dynamic Link คุณต้องเริ่มต้น ไลบรารี Dynamic Links ก่อน

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

การสร้าง Dynamic Link แบบยาวจากพารามิเตอร์

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

ตัวอย่างที่เรียบง่ายต่อไปนี้สร้าง Dynamic Link แบบยาวไปยัง 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);

การสร้าง Shorts Dynamic Link

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

GetShortLink อาจใช้DynamicLinkOptions config parameter เพิ่มเติมกับ PathLength ซึ่งช่วยให้คุณควบคุมวิธีสร้างลิงก์ได้ การสร้าง Short Link ต้องใช้คำขอเครือข่ายไปยังแบ็กเอนด์ของ 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 ครั้งต่อวินาที) คุณสามารถตรวจสอบผลลัพธ์ได้ 1 ครั้งต่อการอัปเดต

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());
  }
}