บริการส่งข้อความ 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)
เผยแพร่ข้อความไปยังเซิร์ฟเวอร์สด
หลังจาก การตั้งค่าเรื่อง เผยแพร่ข้อความไปยังเซิร์ฟเวอร์สดของประสบการณ์ของคุณ:
สร้างคีย์ API บน แดชบอร์ดของผู้สร้าง และคัดลอกไปยังที่ปลอดภัย ตรวจสอบให้แน่ใจว่าคุณดำเนินการตั้งค่าต่อไปนี้:
- เพิ่ม บริการส่งข้อความ ใน สิทธิ์การเข้าถึง 2. เลือกประสบการณ์และเพิ่มการดำเนินการ universal-message-service:publish
รับ ID จักรวาล สำหรับประสบการณ์ของคุณ:
- นําทางไปยัง แดชบอร์ดผู้สร้าง
- ค้นหาประสบการณ์ที่คุณต้องการเผยแพร่ข้อความ
- เลื่อนเมาส์ไปที่ภาพรวมของประสบการณ์, คลิกปุ่ม ⋯ และเลือก คัดลอก ID จักรวาล
เพิ่มคีย์ 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!"}'ส่งคำขอ HTTP เพื่อเผยแพร่ข้อความ
เพิ่มบริการส่งข้อความ API ให้กับแอป OAuth 2.0
คุณสามารถสร้าง แอปพลิเคชัน OAuth 2.0 ที่อนุญาตให้ผู้ใช้ของคุณเผยแพร่ข้อความไปยังเซิร์ฟเวอร์สดของตนเอง
เพื่อใช้ API บริการจัดส่งข้อความสำหรับแอปพลิเคชันของคุณและขอสิทธิ์จากผู้ใช้ของคุณ ทำการตั้งค่าต่อไปนี้:
เมื่อ ลงทะเบียนแอปของคุณ , ภายใต้ สิทธิ์ , เลือกขอบเขต universe-messaging-service:publish
เมื่อ ใช้การไหลการอนุญาต รวม 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ขอการเข้าถึง 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"]}}}]}แอปพลิเคชันของคุณสามารถส่งข้อความไปยังประสบการณ์ใดก็ได้ที่ผู้ใช้ได้รับอนุญาตแล้วเมื่อส่งคำขอให้รวมโทเค็นการเข้าถึงในหัวข้อการอนุญาตและ 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"}'