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

คุณสร้าง Dynamic Links แบบสั้นหรือยาวได้ด้วย Firebase Dynamic Links API API ใช้โครงสร้างพารามิเตอร์ที่ไม่บังคับหลายรายการเพื่อสร้างลิงก์ นอกจากนี้ คุณยังสร้างลิงก์แบบสั้นจากลิงก์แบบยาวที่สร้างไว้ก่อนหน้านี้ได้ด้วย Firebase Dynamic Links สร้าง URL เช่น 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 สำหรับรหัสไคลเอ็นต์ที่กลับด้าน หากต้องการดูค่านี้ ให้เปิด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 ซึ่งจะช่วยให้คุณควบคุมวิธีสร้างลิงก์ได้ การสร้างลิงก์สั้นต้องใช้คำขอเครือข่ายไปยังแบ็กเอนด์ของ 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());
  }
}