คู่มือการใช้งานการส่งข้อความ

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

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

การใช้งาน

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

  • พอร์ทัลการประกาศ : พอร์ทัลเว็บสามารถเป็นประโยชน์ในการสนับสนุนการส่งประกาศไปยังผู้ใช้ทั้งหมดบนเซิร์ฟเวอร์ในประสบการณ์ของคุณ เช่น ประกาศกิจกรรมที่กําลังจะมาถึง การอัปเดต และผู้ชนะสําหรับการแข่งขันบนพอร์ทัลคุณสามารถแก้ไขข้อความและคลิกที่ปุ่มที่เรียก API เพื่อส่งข้อความออกให้กับผู้ใช้ทั้งหมดหรือผู้ใช้ที่เลือก

  • ระบบการควบคุม : ระบบการควบคุมสามารถช่วยให้ประสบการณ์ของคุณปลอดภัยและปลอดภัยเมื่อตรวจพบผู้ใช้ที่มีพฤติกรรมไม่เหมาะสมคุณสามารถเผยแพร่ข้อความเพื่อเรียกใช้เซิร์ฟเวอร์ประสบการณ์เพื่อเตือนหรือแบนผู้ใช้เฉพาะได้คุณยังสามารถใช้ ร้านข้อมูล ในระบบการกลั่นกรองเพื่อเพิ่มบัญชีผู้ใช้ในรายการบล็อกที่ป้องกันไม่ให้พวกเขากลับมาร่วมกัน

  • แดชบอร์ด LiveOps : แดชบอร์ด LiveOps เป็นเครื่องมือที่มีประโยชน์สำหรับการจัดการกิจกรรมสด เช่น ปาร์ตี้ฮาโลวีนบนแดชบอร์ด คุณสามารถกําหนดล่วงหน้าโค้ดกิจกรรมอัปเดตข้อความกิจกรรมเรียกกิจกรรมเมื่อพร้อมและรางวัลผู้ใช้ที่เลือกด้วยไอเทมพิเศษเช่นมงกุฎเสมือนโดยไม่ต้องอัปเดตรหัสประสบการณ์

ข้อจํากัด

จํากัดคําอธิบาย
อัตราRoblox ลดคําขอข้อความที่ 50 + (5 * number_of_players_in_experience) .ตัวอย่างเช่นประสบการณ์ที่มีผู้เล่น 20 คนเริ่มชะลอตัวที่ 150 คำขอข้อความต่อนาที
ขนาดหัวข้อ80 ตัวอักษร
ขนาดข้อความ1,024 ตัวอักษร (1 KB)

ตั้งหัวข้อสำหรับการส่งข้อความ

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

ขณะนี้คุณสามารถกำหนดหัวข้อใน Studio และใช้ Luau API MessagingService:SubscribeAsync() เพื่อสมัครสมาชิกผู้ใช้ได้เท่านั้นตัวอย่างโค้ดต่อไปนี้สมัครสมาชิกผู้ใช้ในหัวข้อเมื่อพวกเขาเข้าร่วมประสบการณ์:

Set up and Subscribe Users to a Topic

local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
-- กำหนดและสมัครรับหัวข้อ
local topic = "YourTopic"
local connection = MessagingService:SubscribeAsync(topic, function(message)
print(message.Data)
end)
player.AncestryChanged:Connect(function()
-- ยกเลิกการสมัครรับข้อมูลจากหัวข้อเมื่อมีการเปลี่ยนแปลงบรรพบุรุษผู้เล่น
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

เผยแพร่ข้อความไปยังเซิร์ฟเวอร์สด

หลังจาก การตั้งค่าเรื่อง เผยแพร่ข้อความไปยังเซิร์ฟเวอร์สดของประสบการณ์ของคุณ:

  1. สร้างคีย์ API บน แดชบอร์ดของผู้สร้าง และคัดลอกไปยังที่ปลอดภัย ตรวจสอบให้แน่ใจว่าคุณดำเนินการตั้งค่าต่อไปนี้:

    1. เพิ่ม บริการส่งข้อความ ใน สิทธิ์การเข้าถึง 2. เลือกประสบการณ์และเพิ่มการดำเนินการ universal-message-service:publish
  2. รับ ID จักรวาล สำหรับประสบการณ์ของคุณ:

    1. นําทางไปยัง แดชบอร์ดผู้สร้าง
    2. ค้นหาประสบการณ์ที่คุณต้องการเผยแพร่ข้อความ
    3. เลื่อนเมาส์ไปที่ภาพรวมของประสบการณ์, คลิกปุ่ม และเลือก คัดลอก ID จักรวาล
  3. เพิ่มคีย์ API และจักรวาลในคำขอ POST เช่นในตัวอย่างนี้:

    ตัวอย่างคำขอเผยแพร่ข้อความ

    curl -L -X POST 'https://apis.roblox.com/cloud/v2/universes/{universe}:publishMessage' \
    -H 'x-api-key: {api-key}' \
    -H 'Content-Type: application/json' \
    --data '{
    "topic": "your-topic",
    "message": "Hello, everyone!"
    }'
  4. ส่งคำขอ HTTP เพื่อเผยแพร่ข้อความ

เพิ่มบริการส่งข้อความ API ให้กับแอป OAuth 2.0

คุณสามารถสร้าง แอปพลิเคชัน OAuth 2.0 ที่อนุญาตให้ผู้ใช้ของคุณเผยแพร่ข้อความไปยังเซิร์ฟเวอร์สดของตนเอง

เพื่อใช้ API บริการจัดส่งข้อความสำหรับแอปพลิเคชันของคุณและขอสิทธิ์จากผู้ใช้ของคุณ ทำการตั้งค่าต่อไปนี้:

  1. เมื่อ ลงทะเบียนแอปของคุณ , ภายใต้ สิทธิ์ , เลือกขอบเขต universe-messaging-service:publish

  2. เมื่อ ใช้การไหลการอนุญาต รวม universe-messaging-service:publish ในพารามิเตอร์ scope ของ URL การอนุญาตที่ส่งผู้ใช้กลับไปยังแอปพลิเคชันของคุณเช่นตัวอย่างต่อไปนี้:


    https://authorize.roblox.com?client_id=816547628409595165403873012&redirect_uri=https://my-app.com/redirect&scope=openid+universe-messaging-service:publish&response_type=Code&prompts=login+consent&nonce=12345&state=6789
  3. ขอการเข้าถึง universeId ของประสบการณ์ที่ผู้ใช้ต้องการเผยแพร่ข้อความแอปของคุณสามารถส่งคำขอ ไปยังจุดสิ้นสุดทรัพยากรโทเค็น ด้วยโทเค็นการเข้าถึง, ID ของไคลเอนต์ และความลับหรือ ขึ้นอยู่กับการดําเนินการของการอนุญาตของคุณตามที่คุณกำหนดไว้ ตามพารามิเตอร์คำขอเพื่อรับรายการประสบการณ์ที่ผู้ใช้ได้รับอนุญาต:

    ตัวอย่างคำขอ

    curl --location --request POST 'https://apis.roblox.com/oauth/v1/token/resources' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'token=<access_token>' \
    --data-urlencode 'client_id=<client_id>' \
    --data-urlencode 'client_secret=<client_secret>'

    จุดจบนี้ส่งคืนรายการของ universeIds เช่นคำตอบตัวอย่างดังต่อไปนี้:

    ตอบสนองตัวอย่าง

    {
    "resource_infos": [
    {
    "owner": {
    "id": "1516563360",
    "type": "User"
    },
    "resources": {
    "universe": {
    "ids": ["3828411582"]
    }
    }
    }
    ]
    }
  4. แอปพลิเคชันของคุณสามารถส่งข้อความไปยังประสบการณ์ใดก็ได้ที่ผู้ใช้ได้รับอนุญาตแล้วเมื่อส่งคำขอให้รวมโทเค็นการเข้าถึงในหัวข้อการอนุญาตและ universeId และหัวข้อในคำขอ URI ในรูปแบบต่อไปนี้:

    ตัวอย่างคำขอ

    curl --location --request POST 'https://apis.roblox.com/cloud/v2/universes/{universe}:publishMessage' \
    --header 'Authorization: Bearer <access_token>' \
    --header 'Content-Type: application/json' \
    --data-raw '{"topic": "some-topic","message":"message to publish"}'