วิธีตั้งค่าสิทธิ์เข้าถึง Data Manager API ด้วย SDK หรือ REST มีดังนี้
ข้อกำหนดเบื้องต้น
ก่อนที่จะใช้ Data API ได้ โปรดตรวจสอบว่าคุณมีสิ่งต่อไปนี้
- โปรเจ็กต์ Google Cloud
- บัญชี Google ที่มีสิทธิ์
serviceusage.services.enableในโปรเจ็กต์ Google Cloud หรือมีบทบาทที่มีสิทธิ์ดังกล่าว ตัวอย่างเช่นroles/ownerและroles/serviceusage.serviceUsageAdminมีสิทธิ์serviceusage.services.enableทั้งคู่ หากต้องการตรวจสอบสิทธิ์ ให้ดูดูสิทธิ์เข้าถึงปัจจุบัน
เปิดใช้ API
หากยังไม่ได้ดำเนินการ ให้เปิดใช้ Data Manager API โดยคลิกเปิดใช้ Data Manager API หรือทำตามวิธีการเพื่อดำเนินการ ขั้นตอนนี้ด้วยตนเอง
เปิดใช้ Data Manager APIหากไม่พบ Data Manager API หรือเปิดใช้ Data Manager API ไม่สำเร็จ ให้ตรวจสอบว่าบัญชี Google เป็นไปตามข้อกำหนดเบื้องต้น
ตั้งค่าการตรวจสอบสิทธิ์
คุณสามารถใช้วิธีการตรวจสอบสิทธิ์ที่ Google นอกเหนือจากคีย์ API ได้ เราขอแนะนำให้คุณดูวิธีเลือกวิธีการตรวจสอบสิทธิ์ที่เหมาะสมสำหรับกรณีการใช้งานของคุณ เพื่อพิจารณาว่าแนวทางใดที่เหมาะสมกับกรณีการใช้งานของคุณ
วิธีการตรวจสอบสิทธิ์ที่ใช้กันโดยทั่วไป 2 วิธีคือบัญชีผู้ใช้และบัญชีบริการ
- บัญชีผู้ใช้: แสดงถึงผู้ที่โต้ตอบกับ Google API และ บริการโดยตรง
- บัญชีบริการ: แสดงแอป ไม่ใช่ผู้ใช้ ซึ่งช่วยให้ แอปของคุณจัดการการตรวจสอบสิทธิ์และการให้สิทธิ์ได้ เช่น หากแอป ต้องเข้าถึงทรัพยากร Google Cloud
การผสานรวมสามารถใช้ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน (ADC) เพื่อ ค้นหาข้อมูลเข้าสู่ระบบจากสภาพแวดล้อมโดยอัตโนมัติ คุณจึงไม่ต้องเปลี่ยน โค้ดไคลเอ็นต์เพื่อตรวจสอบสิทธิ์
เลือกบัญชีผู้ใช้หรือการแอบอ้างเป็นบัญชีบริการเพื่อตั้งค่า ADC
ขั้นตอนในการตรวจสอบสิทธิ์ด้วยข้อมูลเข้าสู่ระบบของบัญชีผู้ใช้มีดังนี้
กำหนดค่าการตั้งค่า Google Auth Platform สำหรับโปรเจ็กต์
เปิดหน้าการสร้างแบรนด์ ใน Google Cloud Console
เลือกโปรเจ็กต์
กรอกแบบฟอร์ม แล้วคลิกสร้าง
เนื่องจากขอบเขต Data Manager API เป็นขอบเขตที่มีความละเอียดอ่อน คุณจึงต้องทำตามขั้นตอนต่อไปนี้
ไปที่การตั้งค่าการเข้าถึงข้อมูลสำหรับโปรเจ็กต์
คลิกเพิ่มหรือนำขอบเขตออก
เลือกช่องข้าง Data Manager API ในรายการขอบเขต แล้วคลิกอัปเดต
คลิกบันทึก
ไปที่กลุ่มเป้าหมายใน Google Cloud Console แล้วอัปเดตสถานะการเผยแพร่และ ประเภทผู้ใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าเหล่านี้ได้ในจัดการกลุ่มเป้าหมายแอป
คลิกสร้างไคลเอ็นต์ OAuth2 เพื่อสร้างไคลเอ็นต์ OAuth2 ในโปรเจ็กต์ หรือทำตามวิธีการ เพื่อสร้างไคลเอ็นต์ OAuth2 สำหรับเดสก์ท็อป
สร้างไคลเอ็นต์ OAuth2ในขั้นตอนสุดท้าย ให้คลิกดาวน์โหลดการกำหนดค่าไคลเอ็นต์และจดบันทึก ตำแหน่งดาวน์โหลดที่คุณเลือก
สร้างไฟล์ ADC ในเครื่องโดยการเรียกใช้คำสั่งต่อไปนี้ คำสั่งนี้จะเปิดโฟลว์เว็บซึ่งระบบจะ แจ้งให้คุณเข้าสู่ระบบบัญชี Google ที่คุณใช้กับ API
แทนที่ PATH_TO_CLIENT_JSON ด้วยชื่อไฟล์ JSON ที่คุณดาวน์โหลด
gcloud auth application-default login \ --scopes="https://www.googleapis.com/auth/datamanager,https://www.googleapis.com/auth/cloud-platform" \ --client-id-file="PATH_TO_CLIENT_JSON"ยืนยันว่าได้ตั้งค่าข้อมูลเข้าสู่ระบบอย่างถูกต้องโดยใช้คำสั่งต่อไปนี้ หากสำเร็จ คำสั่งจะพิมพ์โทเค็นการเข้าถึงไปยังคอนโซล
gcloud auth application-default print-access-token
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์และข้อมูลเข้าสู่ระบบสำหรับแอปได้ที่วิธีการตรวจสอบสิทธิ์ที่ Google และวิธีการทำงานของข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน
ตั้งค่าสิทธิ์เข้าถึงบัญชีปฏิบัติการ
ให้สิทธิ์เข้าถึงDestination แก่อีเมลที่เชื่อมโยงกับบัญชีผู้ใช้
- หากใช้บัญชี Google Ads หรือพาร์ทเนอร์ข้อมูล ทําตามวิธีการเพื่อ เพิ่มอีเมลของผู้ใช้ลงในบัญชี
- หากใช้บัญชี Display & Video 360 ให้ทําตามวิธีการเพื่อ เพิ่มอีเมลของผู้ใช้ลงในบัญชี
ตั้งค่า SDK สำหรับภาษาโปรแกรม
ติดตั้ง SDK ที่ต้องการในเครื่องของคุณ
REST
- อัปเดตตัวยึดตำแหน่งในตัวอย่างต่อไปนี้ เช่น OPERATING_ACCOUNT_PRODUCT, OPERATING_ACCOUNT_ID และ AUDIENCE_ID ด้วยค่าสำหรับบัญชีและปลายทางของคุณ
- แทนที่ PROJECT_ID ด้วยรหัสของ Google Cloud
คัดลอกตัวอย่างไปยังบรรทัดคำสั่งเพื่อส่งคำขอ
นำแอตทริบิวต์
linkedAccountของรายการในdestinationsออกหากคุณไม่ได้เข้าถึงoperatingAccountโดยใช้ลิงก์ผลิตภัณฑ์ที่สร้างไว้#!/bin/bash # Uses gcloud to get an access token. If the Application Default # Credentials aren't for a service account, the command that specifies # --scopes fails. This sample falls back to the command without the # --scopes argument. DATA_MANAGER_ACCESS_TOKEN="$(gcloud auth application-default print-access-token --scopes=https://www.googleapis.com/auth/datamanager || \ gcloud auth application-default print-access-token)" # Fetches and prints the scope information for the access token. If you # get scope-related errors when you send the request in the next step, # verify that this output includes the Data Manager API scope: # https://www.googleapis.com/auth/datamanager curl https://www.googleapis.com/oauth2/v1/tokeninfo?access_token="${DATA_MANAGER_ACCESS_TOKEN}" # Sends the request. curl -X POST "https://datamanager.googleapis.com/v1/audienceMembers:ingest" \ --header "Authorization: Bearer ${DATA_MANAGER_ACCESS_TOKEN}" \ --header "x-goog-user-project: PROJECT_ID" \ --header "Content-Type: application/json" \ --data @- <<EOF { "destinations": [ { "operatingAccount": { "accountType": "OPERATING_ACCOUNT_TYPE", "accountId": "OPERATING_ACCOUNT_ID" }, "loginAccount": { "accountType": "LOGIN_ACCOUNT_TYPE", "accountId": "LOGIN_ACCOUNT_ID" }, "linkedAccount": { "accountType": "LINKED_ACCOUNT_TYPE", "accountId": "LINKED_ACCOUNT_ID" }, "productDestinationId": "AUDIENCE_ID" } ], "audienceMembers": [ { "userData": { "userIdentifiers": [ { "emailAddress": "07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3" }, { "emailAddress": "1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7" } ] } }, { "userData": { "userIdentifiers": [ { "emailAddress": "2ef46c4214c3fc1b277a2d976d55194e12b899aa50d721f28da858c7689756e3" }, { "emailAddress": "54e410b14fa652a4b49b43aff6eaf92ad680d4d1e5e62ed71b86cd3188385a51" }, { "emailAddress": "e8bd3f8da6f5af73bec1ab3fbf7beb47482c4766dfdfc94e6bd89e359c139478" } ] } }, { "userData": { "userIdentifiers": [ { "emailAddress": "05bb62526f091b45d20e243d194766cca8869137421047dc53fa4876d111a6f0" }, { "emailAddress": "f1fcde379f31f4d446b76ee8f34860eca2288adc6b6d6c0fdc56d9eee75a2fa5" } ] } }, { "userData": { "userIdentifiers": [ { "emailAddress": "83a834cc5327bc4dee7c5408988040dc5813c7662611cd93b707aff72bf7d33f" }, { "emailAddress": "223ebda6f6889b1494551ba902d9d381daf2f642bae055888e96343d53e9f9c4" } ] } } ], "consent": { "adUserData": "CONSENT_GRANTED", "adPersonalization": "CONSENT_GRANTED" }, "encoding": "HEX", "termsOfService": { "customerMatchTermsOfServiceStatus": "ACCEPTED" }, "validateOnly": true } EOF
.NET
ติดตั้งไลบรารีของไคลเอ็นต์
ทำตามวิธีการในคู่มือการติดตั้งไลบรารีของไคลเอ็นต์ .NET เพื่อเพิ่มการอ้างอิงไปยังไลบรารีของไคลเอ็นต์ในโปรเจ็กต์
ไม่บังคับ: รับไลบรารียูทิลิตีและตัวอย่างโค้ด
ดาวน์โหลดและแตกไฟล์ data-manager-dotnet.tar.gz
ในโปรเจ็กต์ .NET ให้ประกาศ
ProjectReferenceDependency ใน ไลบรารียูทิลิตี แทนที่ PATH_TO_UTILITY_LIBRARY ด้วยตำแหน่งที่คุณแยกไดเรกทอรีdata-manager-dotnetจากdata-manager-dotnet.tar.gz<ProjectReference Include="PATH_TO_UTILITY_LIBRARY\Google.Ads.DataManager.Util\src\Google.Ads.DataManager.Util.csproj" />หากต้องการจัดรูปแบบข้อมูล ให้ใช้ยูทิลิตี
Formatterในโปรเจ็กต์ .NETเรียกดูตัวอย่างโค้ดในไดเรกทอรีย่อย
samplesเปลี่ยนไปที่ไดเรกทอรี
samplesแล้วใช้dotnet runเพื่อดูรายการ ตัวอย่างที่มีdotnet runส่งอาร์กิวเมนต์
--helpเมื่อเรียกใช้ตัวอย่างเพื่อพิมพ์คำสั่งการใช้งาน พร้อมพารามิเตอร์ที่คาดไว้dotnet run -- ingest-audience-members --helpหากต้องการช่วยให้คุณเริ่มต้นใช้งานข้อมูลตัวอย่างได้ ให้ใช้ไฟล์ที่
samples/sampledata/audience_members_1.csv
Java
ติดตั้งไลบรารีของไคลเอ็นต์
- ดาวน์โหลดและแตกไฟล์ google-cloud-ads-datamanager-v1-java.tar.gz
- ไปที่ไดเรกทอรี
google-cloud-ads-datamanager-v1-java เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างและเผยแพร่ไลบรารีไปยัง ที่เก็บ Maven ในเครื่องเพื่อใช้กับ Maven หรือ Gradle
./gradlew installในโปรเจ็กต์ Java ให้ประกาศทรัพยากร Dependency ในไลบรารี Data Manager API
Gradle:
implementation 'com.google.cloud:gapic-google-cloud-ads-datamanager-v1-java:0.1.4'Maven:
<dependency> <groupId>com.google.cloud</groupId> <artifactId>gapic-google-cloud-ads-datamanager-v1-java</artifactId> <version>0.1.4</version> </dependency>
ไม่บังคับ: รับไลบรารียูทิลิตีและตัวอย่างโค้ด
โคลนที่เก็บ GitHub
git clone https://github.com/googleads/data-manager-java.gitไปที่ไดเรกทอรี
data-manager-javaสร้างและเผยแพร่ไลบรารียูทิลิตีไปยังที่เก็บ Maven ในเครื่อง
./gradlew data-manager-util:installในโปรเจ็กต์ Java ให้ประกาศทรัพยากร Dependency ในไลบรารียูทิลิตี
Gradle:
implementation 'com.google.api-ads:data-manager-util:0.1.0'Maven:
<dependency> <groupId>com.google.api-ads</groupId> <artifactId>data-manager-util</artifactId> <version>0.1.0</version> </dependency>หากต้องการจัดรูปแบบและเข้ารหัสข้อมูล ให้ใช้ยูทิลิตี
UserDataFormatterและEncrypterในโปรเจ็กต์ Javaเรียกดูตัวอย่างโค้ดใน
data-manager-samplesไดเรกทอรีย่อยหรือใน GitHub หากต้องการเรียกใช้ตัวอย่างจากบรรทัดคำสั่ง ให้ใช้runงาน Gradleเช่น คำสั่งต่อไปนี้จะเรียกใช้
IngestAudienceMemberssample และพิมพ์คำชี้แจงการใช้งาน./gradlew data-manager-samples:run \ --args='IngestAudienceMembers --help'หากต้องการช่วยให้คุณเริ่มต้นใช้งานข้อมูลตัวอย่างได้ ให้ใช้ไฟล์ที่
data-manager-samples/src/main/resources/sampledata/audience_members_1.csv
Node.js
ติดตั้งไลบรารีของไคลเอ็นต์
- ดาวน์โหลดและแตกไฟล์ ads-datamanager-v1-nodejs.tar.gz
- ไปที่ไดเรกทอรี
ads-datamanager-v1-nodejs เรียกใช้คำสั่งต่อไปนี้เพื่อคอมไพล์และแพ็กไลบรารีไคลเอ็นต์ลงในไฟล์
.tgzสำหรับใช้กับnpmnpm packคำสั่งจะสร้างที่เก็บถาวรชื่อ
google-cloud-datamanager-0.1.4.tgzจดตำแหน่งไฟล์ไว้เพื่อใช้ในขั้นตอนถัดไปในโปรเจ็กต์ Node.js ให้ประกาศการอ้างอิงไลบรารีไคลเอ็นต์ Data Manager API โดยการเพิ่มรายการ
dependenciesสำหรับเส้นทางแบบเต็มและชื่อไฟล์ของไฟล์google-cloud-datamanager-0.1.4.tgz{ "dependencies": { ... "@google-cloud/datamanager": "file:PATH_TO_CLIENT_LIBRARY/google-cloud-datamanager-0.1.4.tgz", ... } }
ไม่บังคับ: รับไลบรารียูทิลิตีและตัวอย่างโค้ด
- ดาวน์โหลดและแตกไฟล์ data-manager-node.tar.gz
- ไปที่ไดเรกทอรี
data-manager-node เปลี่ยนเป็นไดเรกทอรี
utilcd utilเรียกใช้คำสั่งต่อไปนี้เพื่อคอมไพล์และแพ็กไลบรารียูทิลิตีเป็นไฟล์
.tgzสำหรับใช้กับnpmnpm packคำสั่งจะสร้างที่เก็บถาวรชื่อ
google-ads-datamanager-util-0.1.0.tgzจดตำแหน่งไฟล์ไว้เพื่อใช้ในขั้นตอนถัดไปในโปรเจ็กต์ Node.js ให้ประกาศการอ้างอิงในไลบรารียูทิลิตี Data Manager API โดยการเพิ่มรายการ
dependenciesสำหรับเส้นทางแบบเต็มและ ชื่อไฟล์ของไฟล์google-ads-datamanager-util-0.1.0.tgz{ "dependencies": { ... "@google-ads/data-manager-util": "file:PATH_TO_UTILITY_LIBRARY/google-ads-datamanager-util-0.1.0.tgz", ... } }หากต้องการจัดรูปแบบข้อมูล ให้ใช้
UserDataFormatterยูทิลิตีในโปรเจ็กต์ Node.jsเรียกดูตัวอย่างโค้ดในไดเรกทอรีย่อย
samplesเรียกใช้ตัวอย่าง โดยทำตามขั้นตอนต่อไปนี้คัดลอก
google-cloud-datamanager-0.1.4.tgzไปยังไดเรกทอรีหลักของไดเรกทอรีdata-manager-nodeไปที่ไดเรกทอรี
samplesในdata-manager-nodeเรียกใช้คำสั่งต่อไปนี้เพื่อคอมไพล์ตัวอย่าง
npm run compileเรียกใช้ตัวอย่างโดยส่งอาร์กิวเมนต์ที่จำเป็น ส่งอาร์กิวเมนต์
--helpเมื่อเรียกใช้ตัวอย่างเพื่อพิมพ์ข้อความการใช้งานพร้อมพารามิเตอร์ที่คาดไว้เช่น คำสั่งต่อไปนี้จะเรียกใช้
ingest_audience_membersตัวอย่างและพิมพ์คำชี้แจงการใช้งานnpx ts-node audiences/ingest_audience_members.ts --help
หากต้องการช่วยให้คุณเริ่มต้นใช้งานข้อมูลตัวอย่างได้ ให้ใช้ไฟล์ที่
samples/sampledata/audience_members_1.csv
PHP
ติดตั้งไลบรารีของไคลเอ็นต์
- ดาวน์โหลดและแตกไฟล์ google-cloud-ads-datamanager-v1-php.tar.gz
- ไปที่ไดเรกทอรี
google-cloud-ads-datamanager-v1-php เรียกใช้คำสั่งต่อไปนี้เพื่อแก้ไขทรัพยากร Dependency สำหรับไลบรารี
composer update --prefer-distในไฟล์
composer.jsonของโปรเจ็กต์ PHP ในโฮสต์เดียวกัน ให้ประกาศ การอ้างอิงในไลบรารี Data Manager API โดยทำตามขั้นตอนต่อไปนี้เพิ่ม
repositoriesส่วนที่ชี้ไปยังตำแหน่งของgoogle-cloud-ads-datamanager-v1-phpไดเรกทอรี"repositories" : [ { "type" : "path", "url" : "PATH_TO_CLIENT_LIBRARY" } ]ประกาศทรัพยากร Dependency ในไลบรารี Data Manager API
"require": { "googleads/data-manager": "0.1.4" }
ไม่บังคับ: รับไลบรารียูทิลิตีและตัวอย่างโค้ด
- ดาวน์โหลดและแตกไฟล์ data-manager-php.tar.gz
- ไปที่ไดเรกทอรี
data-manager-php เรียกใช้คำสั่งต่อไปนี้เพื่อแก้ไขทรัพยากร Dependency สำหรับไลบรารี
composer update --prefer-distในไฟล์
composer.jsonของโปรเจ็กต์ PHP ในโฮสต์เดียวกัน ให้ประกาศทรัพยากร Dependency ในไลบรารียูทิลิตีโดยทำตามขั้นตอนต่อไปนี้เพิ่มรายการในส่วน
repositoriesที่ชี้ไปยัง ตำแหน่งของไดเรกทอรีdata-manager-php"repositories" : [ { "type" : "path", "url" : "PATH_TO_UTILITY_LIBRARY" } ]ประกาศทรัพยากร Dependency ในไลบรารียูทิลิตี
"require": { "googleads/data-manager-util": "@dev" }
หากต้องการจัดรูปแบบข้อมูล ให้ใช้ยูทิลิตี
Formatterในโปรเจ็กต์ PHPเรียกดูตัวอย่างโค้ดในไดเรกทอรีย่อย
samplesเรียกใช้ตัวอย่าง โดยทำตามขั้นตอนต่อไปนี้ไปที่ไดเรกทอรี
samplesตั้งค่าตัวแปรสภาพแวดล้อม
DATA_MANAGER_PHP_LIBเป็นเส้นทาง ที่คุณแยกไลบรารีของไคลเอ็นต์export DATA_MANAGER_PHP_LIB="PATH_TO_CLIENT_LIBRARY"เรียกใช้คำสั่งต่อไปนี้เพื่อแก้ไขทรัพยากร Dependency สำหรับไลบรารี
composer update --prefer-distเรียกใช้ตัวอย่างโดยส่งอาร์กิวเมนต์ที่จำเป็น ส่งอาร์กิวเมนต์
--helpเมื่อเรียกใช้ตัวอย่างเพื่อพิมพ์ข้อความการใช้งานพร้อมพารามิเตอร์ที่คาดไว้
หากต้องการช่วยให้คุณเริ่มต้นใช้งานข้อมูลตัวอย่างได้ ให้ใช้ไฟล์ที่
samples/sampledata/audience_members_1.csv
Python
ติดตั้งไลบรารีของไคลเอ็นต์
- ดาวน์โหลด ads-datamanager-v1-py.tar.gz
- ไปที่ไดเรกทอรีของการดาวน์โหลด
เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างไลบรารีและทำให้พร้อมใช้งานสำหรับ โปรเจ็กต์อื่นๆ ในสภาพแวดล้อม Python เดียวกัน
pip install ./ads-datamanager-v1-py.tar.gzในโปรเจ็กต์ Python ให้ประกาศการอ้างอิงไลบรารี Data Manager API ตัวอย่างเช่น หากใช้ไฟล์
requirements.txtในโปรเจ็กต์ ให้เพิ่มบรรทัดต่อไปนี้ลงในไฟล์google-ads-data-manager=0.1.4
ไม่บังคับ: รับไลบรารียูทิลิตีและตัวอย่างโค้ด
- ดาวน์โหลดและแตกไฟล์ data-manager-python.tar.gz
- ไปที่ไดเรกทอรี
data-manager-python หากต้องการติดตั้งไลบรารียูทิลิตีในสภาพแวดล้อม Python ให้เรียกใช้คำสั่งต่อไปนี้
pip install .ในโปรเจ็กต์ Python ให้ประกาศทรัพยากร Dependency ในไลบรารียูทิลิตี ตัวอย่างเช่น หากใช้ไฟล์
requirements.txtในโปรเจ็กต์ ให้เพิ่มบรรทัดต่อไปนี้ลงในไฟล์google-ads-data-manager-util=0.1.0หากต้องการจัดรูปแบบและเข้ารหัสข้อมูล ให้ใช้ยูทิลิตี
FormatterและEncrypterในโปรเจ็กต์ Pythonเรียกดูตัวอย่างโค้ดในไดเรกทอรีย่อย
samplesส่งอาร์กิวเมนต์--helpเมื่อเรียกใช้ตัวอย่างเพื่อพิมพ์ข้อความการใช้งานพร้อมพารามิเตอร์ที่คาดไว้หากต้องการช่วยให้คุณเริ่มต้นใช้งานข้อมูลตัวอย่างได้ ให้ใช้ไฟล์ที่
samples/sampledata/audience_members_1.csv
Ruby
ติดตั้งไลบรารีของไคลเอ็นต์
ทำตามวิธีการในคู่มือการติดตั้งไลบรารีของไคลเอ็นต์ Ruby เพื่อเพิ่มการอ้างอิงไปยังไลบรารีของไคลเอ็นต์ในโปรเจ็กต์
ขั้นตอนถัดไป
- ดูข้อมูลเพิ่มเติมเกี่ยวกับการส่งข้อมูลกลุ่มเป้าหมาย
- ดูข้อมูลเพิ่มเติมเกี่ยวกับการส่งเหตุการณ์
- เรียกดูเอกสารประกอบข้อมูลอ้างอิงของ REST หรือ RPC