ตัวอย่างเครื่องยนต์

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

เอนจิ้น Open Cloud API ช่วยให้คุณจัดการ Instance วัตถุในประสบการณ์ Roblox ของคุณจากเว็บ

ข้อจํากัดเวลา

API เหล่านี้ขณะนี้อยู่ในเบต้าและมีข้อจํากัดต่อไปนี้:

  • คุณสามารถอ่านและปรับปรุง Script , LocalScript และ ModuleScript รวมถึงวัตถุ

  • คุณไม่สามารถอัปเดตสคริปต์ที่เปิดอยู่ใน Roblox Studio ได้

  • คุณไม่สามารถอัปเดตสคริปที่เป็นส่วนหนึ่งของ แพ็กเกจ

  • คุณสามารถใช้การรับรองด้วย API เท่านั้น สร้าง API key ด้วย จักรวาล-สถานที่จัดการในสถานที่เพิ่มเติม เป็นระบบ API

    คุณต้องระบุประสบการณ์ที่คุณต้องการให้กุญแจมีสิทธิ์เข้าถึง รวมถึงขอบเขตการอ่านและเขียนที่ต้องการ

  • คุณต้องมีเซสชัน ร่วมมือ เปิดใช้งานสำหรับประสบการณ์ที่คุณต้องการเข้าถึง

  • คำขอตัวละคร, เช่น ปรับปรุงสถานที่ จำกัดไว้ที่ 200 KB

รายชื่อเด็ก

รายชื่อบุตรทั้งหมดของตัวอย่างเฉพาะโดยการระบุรหัสตัวอย่างและการเรียกวิธี รายชื่อบุตรของตัวอย่าง


import requests
# สร้างที่ https://create.roblox.com/dashboard/credentials
apiKey = "<API_KEY>"
# ค้นหาที่ https://create.roblox.com/dashboards/creations ในเมนูรวมของปุ่มออก
universeId = "<UNIVERSE_ID>"
# ค้นหารหัสสถานที่เริ่มต้นที่ https://create.roblox.com/dashboards/creations ในเมนูรวมของปุ่มท่อระบายน้ำ
placeId = "<PLACE_ID>"
# รหัสที่ตั้งปกติสำหรับรุ่นข้อมูลที่รวมของสถานที่ใด ๆ
instanceId = "root"
# รายละเอียดการส่งคำขอ
apiKeyHeaderKey = "x-api-key"
# รหัสสิ้นสุดสำหรับวิธีการรายชื่อบุตร
listChildrenUrl = "https://apis.roblox.com/cloud/v2/universes/%s/places/%s/instances/%s:listChildren"
def ListChildren():
url = listChildrenUrl % (universeId, placeId, instanceId)
headerData = {apiKeyHeaderKey: apiKey}
results = requests.get(url, headers = headerData)
return results
response = ListChildren()
print("Operation Results:", response.status_code, response.text)
# ประมวลผลเส้นทางของวัตถุการปฏิบัติการเพื่อให้ได้รับทรัพยากรอินสแตนซ์ในภายหลัง ดูส่วนตรวจสอบผลลัพธ์เพื่อขอข้อมูลเพิ่มเติม
operationPath = response.json()['path']

แทนที่จะเพียงแค่รายชื่อเด็ก, ตอบสนองรวมถึง Operation วัตถุด้วย端口ที่แตกต่างกัน โพลล์จุดนี้ เพื่อดึงรายการเด็กจริงออกมา ตัวอย่างโค้ดที่สมบูรณ์แบบดูเหมือนนี้:


import requests
import time
apiKey = "<API_KEY>"
universeId = "<UNIVERSE_ID>"
placeId = "<PLACE_ID>"
instanceId = "root"
apiKeyHeaderKey = "x-api-key"
listChildrenUrl = "https://apis.roblox.com/cloud/v2/universes/%s/places/%s/instances/%s:listChildren"
getOperationUrl = "https://apis.roblox.com/cloud/v2/%s"
numberOfRetries = 10
retryPollingCadence = 5
doneJSONKey = "done"
def ListChildren():
url = listChildrenUrl % (universeId, placeId, instanceId)
headerData = {apiKeyHeaderKey: apiKey}
results = requests.get(url, headers = headerData)
return results
def GetOperation(operationPath):
url = getOperationUrl % (operationPath)
headerData = {apiKeyHeaderKey: apiKey}
results = requests.get(url, headers = headerData)
return results
def PollForResults(operationPath):
currentRetries = 0
while (currentRetries < numberOfRetries):
time.sleep(retryPollingCadence)
results = GetOperation(operationPath)
currentRetries += 1
if (results.status_code != 200 or results.json()[doneJSONKey]):
return results
response = ListChildren()
print("Operation Results:", response.status_code, response.text)
# วิเคราะห์เส้นทางของวัตถุการปฏิบัติการเพื่อใช้ในการโพลลิ่งสำหรับทรัพยากรอินสแตนซ์
operationPath = response.json()['path']
response = PollForResults(operationPath)
print("Response:", response.status_code, response.text)

การตอบกลับครั้งสุดท้ายอาจดูเหมือนนี้:


{
"path": "universes/1234567890/places/98765432109/instances/root/operations/a1a2a3a4-a1a2-a1a2-a1a2-a1a2a3a4a5a6",
"done": true,
"response": {
"@type": "type.googleapis.com/roblox.open_cloud.cloud.v2.ListInstanceChildrenResponse",
"instances": [
{
"path": "universes/1234567890/places/98765432109/instances/b1b2b3b4-b1b2-b1b2-b1b2-b1b2b3b4b5b6",
"hasChildren": true,
"engineInstance": {
"Id": "b1b2b3b4-b1b2-b1b2-b1b2-b1b2b3b4b5b6",
"Parent": "a1a2a3a4-a1a2-a1a2-a1a2-a1a2a3a4a5a6",
"Name": "Workspace",
"Details": {}
}
},
...
]
}
}

คุณสามารถทำซ้ำ JSON เพื่อค้นหารหัสรุ่นตัวอย่างเฉพาะ:


instances = response.json()['response']['instances']
replicatedStorageId = ""
for i in instances:
if i['engineInstance']['Name'] == "ReplicatedStorage":
replicatedStorageId = i['engineInstance']['Id']
if replicatedStorageId:
# ตอนนี้คุณมีรหัสสินค้าและสามารถรับหรือปรับปรุงได้
else:
# The name wasn't found.

สคริปต์มีข้อมูลเพิ่มเติมบางอย่างในวัตถุ Details เช่นประเภทสคริปต์ พิมพ์และว่าพวกเขาเปิดใช้งานหรือไม่

รับตัวอินสแตนซ์

วิธีนี้กลับ รายการเดียว


import requests
# สร้างที่ https://create.roblox.com/dashboard/credentials
apiKey = "<API_KEY>"
# ค้นหาที่ https://create.roblox.com/dashboards/creations ในเมนูรวมของปุ่มออก
universeId = "<UNIVERSE_ID>"
# ค้นหารหัสสถานที่เริ่มต้นที่ https://create.roblox.com/dashboards/creations ในเมนูรวมของปุ่มท่อระบายน้ำ
placeId = "<PLACE_ID>"
# รหัสที่ตั้งปกติสำหรับรุ่นข้อมูลที่รวมของสถานที่ใด ๆ
instanceId = "<INSTANCE_ID>"
# รายละเอียดการส่งคำขอ
apiKeyHeaderKey = "x-api-key"
# รหัสโอนสิ้นสุดสำหรับวิธีรับตัวอย่าง
getInstanceUrl = "https://apis.roblox.com/cloud/v2/universes/%s/places/%s/instances/%s"
def GetInstance():
url = getInstanceUrl % (universeId, placeId, instanceId)
headerData = {apiKeyHeaderKey: apiKey}
return requests.get(url, headers = headerData)
response = GetInstance()
print("Response:", response.status_code, response.text)
# วิเคราะห์เส้นทางของวัตถุการปฏิบัติการจากการตอบกลับ ดูส่วน "การสำรวจสำหรับผลลัพธ์" เพื่อขอข้อมูลเพิ่มเติม
operationPath = response.json()['path']

เหมือนวิธี List Instanced Children ตอบสนองรวมถึงวัตถุ Operation อินสแตนซ์ดูที่ โพลลิ่งเพื่อผลลัพธ์ สำหรับข้อมูลเพิ่มเติม

การปรับปรุงสถานที่

หลังจากที่คุณได้รับ ID ของเครื่องมือที่เหมาะสมแล้วคุณสามารถปรับปรุงได้ โพลสำหรับผลลัพธ์ หลังจากสร้างคำขอปรับปรุงครั้งแรก


import json
import requests
# สร้างที่ https://create.roblox.com/dashboard/credentials
apiKey = "<API_KEY>"
# ค้นหาที่ https://create.roblox.com/dashboards/creations ในเมนูรวมของปุ่มออก
universeId = "<UNIVERSE_ID>"
# ค้นหารหัสสถานที่เริ่มต้นที่ https://create.roblox.com/dashboards/creations ในเมนูรวมของปุ่มท่อระบายน้ำ
placeId = "<PLACE_ID>"
instanceId = "<INSTANCE_ID>"
instanceType = ""
propertyName = ""
propertyValue = ""
# รายละเอียดการส่งคำขอ
apiKeyHeaderKey = "x-api-key"
contentTypeHeaderKey = "Content-type"
contentTypeHeaderValue = "application/json"
# รหัส URL สิ้นสุดสำหรับวิธีการอัปเดตรุ่น
updateInstanceUrl = "https://apis.roblox.com/cloud/v2/universes/%s/places/%s/instances/%s"
# รหัส JSON
detailsJSONKey = "Details"
engineInstanceJSONKey = "engineInstance"
def GeneratePostData():
propertiesDict = {propertyName: propertyValue}
detailsDict = {instanceType: propertiesDict}
instanceDict = {detailsJSONKey: detailsDict}
outerDict = {engineInstanceJSONKey: instanceDict}
return json.dumps(outerDict)
def UpdateInstance(postData):
url = updateInstanceUrl % (universeId, placeId, instanceId)
headerData = {apiKeyHeaderKey: apiKey,
contentTypeHeaderKey: contentTypeHeaderValue}
return requests.patch(url, headers = headerData, data = postData)
postData = GeneratePostData()
response = UpdateInstance(postData)
print("Response:", response.status_code, response.text)
# ประมวลผลเส้นทางของวัตถุการปฏิบัติการจากการตอบสนอง โพลเพื่อรับผลลัพธ์เพื่อดำเนินการ
# การอัปเดต
operationPath = response.json()['path']

การโหวตผล

วิธี ทั้งหมด ของ Operation ในปัจจุบันกลับมาเป็นวัตถุ Operation แทนที่จะเป็นทรัพยากรที่คุณขอ

คุณสามารถใช้กลยุทธ์การโหวตต่างๆ เช่นการใช้ค่าควบคุมอัตราการเร่งหรือความแลคที่ติดต่อกันในขณะที่ร้องขอ ตัวอย่างต่อไปจะทำทุก 5 วินาที, ถึง 10 ครั้ง


import requests
import time
# สร้างที่ https://create.roblox.com/dashboard/credentials
apiKey = "<API_KEY>"
# ใช้เส้นทางการดำเนินงานจากคำขอเริ่มต้นของคุณ
# มีรูปร่างของ "จักรวาล/<UNIVERSE_ID>/places/<PLACE_ID>/instances/< Instance_ID>/ operations/< OPERATION_ID>"
operationPath = "<OPERATION_PATH>"
# โพลตคอนสตรัคชัน
numberOfRetries = 10
retryPollingCadence = 5
# รายละเอียดการส่งคำขอ
apiKeyHeaderKey = "x-api-key"
# รหัสสิ้นสุดสำหรับการโพลลิงการดำเนินงานเป็นเวลานาน
getOperationUrl = "https://apis.roblox.com/cloud/v2/%s"
# รหัส JSON
doneJSONKey = "done"
def GetOperation(operationPath):
url = getOperationUrl % (operationPath)
headerData = {apiKeyHeaderKey: apiKey}
results = requests.get(url, headers = headerData)
return results
def PollForResults(operationPath):
currentRetries = 0
while (currentRetries < numberOfRetries):
time.sleep(retryPollingCadence)
results = GetOperation(operationPath)
currentRetries += 1
if (results.status_code != 200 or results.json()[doneJSONKey]):
return results
response = PollForResults(operationPath)
print("Response:", response.status_code, response.text)

ร้านขายยา สาธิต

การแสดงผลลัพธ์ของ Google Sheets ในร้านค้ายาแสดงให้เห็นวิธีการปรับปรุงสคริปของประสบการณ์จากเว็บ กำลังติดตาม:

  • สถานที่ที่ปลดล็อคไม่ได้ด้วย UI ตลกที่แสดงคุณยาต่างๆ และราคาของพวกเขา
  • ไฟล์ .ods ที่คุณนำเข้าไปยัง Google Sheets ของคุณ สเปรดชีตนี้ช่วยให้คุณกำหนดและปรับปรุงค่าสำหรับสมบัติภายในประสบการณ์
  • รหัสสำหรับ Google Apps Script ที่อ่านข้อมูลจาก Google Sheet และปรับปรุง ReplicatedStorage > ItemList สคริปในประสบการณ์ Potion Shop

การตั้งค่า Demo

  1. ไปที่หน้า Potion Shop Demo ค้นพบ คลิกที่เมนูเหยียดระเบิด แล้ว แก้ไขใน Studio Studio เปิดด้วยคัดลอกสถานที่

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

การตั้งค่าแผ่น

  1. ดาวน์โหลด ไฟล์แผ่นขยายตัวร้านค้ายา
  2. ไปที่ Google Sheets และคลิก แผ่นกระดาษว่างเปล่า 3. ในแผ่นที่ปรากฏขึ้น คลิก ไฟล์ > นำเข้า และคลิกที่ อัปโหลด แท็บ
  3. ลากแผ่นขายยาไปยังหน้าต่างการอัปโหลด
  4. เลือก แทนแผ่นกระจาย แล้ว นำเข้าข้อมูล 6. ในแท็บ AppScript ของหน้าเอกสาร คัดลอกโค้ดในเซลล์ A1
  5. คลิกเมนู Extensions > Apps Script แล้ววางโค้ดใน Code.gs ไฟล์ จากนั้นบันทึกโครงการ
  6. กลับสู่แผ่นกระจายเสียง, เลือกแท็บ ร้านค้ายาอัปเดต. คลิกปุ่ม เรียกร้องสคริปท์ และเลือก เรียกร้องสคริปท์ .
  7. ใน หน้าต่างจัดการสคริปท์ ใส่ UpdateScript และคลิก ตกลง

คีย์ API

  1. ไปที่หน้า เปิดให้ใช้งาน API ของ Creator Hub และคลิก สร้างรหัส API
  2. กรอกแบบฟอร์มด้วยข้อมูลต่อไปนี้
    • ชื่อ: : PotionShop
    • ระบบ API : เพิ่มระบบ place-instances จักรวาล ในระบบ API ของคุณ เพิ่มประสบการณ์ร้านขายยาของคุณในระบบ สำหรับ การดำเนินการประสบการณ์ ให้การอ่านและเขียนการเขียนแบบอักษร
    • อนุญาต IP ที่ได้รับการยอมรับ : เพิ่ม 0.0.0.0/0 เป็นที่อยู่ IP
    • หมดอายุ : ไม่มีหมดอายุ
    • คลิก บันทึกและสร้างรหัส แล้ว คัดลอกรหัสไปยังกระดาษ
  3. วางรหัส API ในเซลล์ API Key (D2) ในแท็บเริ่มต้นของ Google Sheet ของคุณ

รับรหัสจักรวาลและสถานที่

  1. ไปที่หน้า ผลงานของผู้สร้าง Hub แล้ววางเมาส์ไว้บนพื้นผลประสบการณ์ของร้านค้าน้ำ แล้วคลิกปุ่มเมนูเหนือการเลือก
  2. เลือก คัดลอกรหัสจักรวาล และวางลงในเซลล์ จักรวาล ID (E2) ในแท็บ การแนะนำ ของ Google Sheet ของคุณ
  3. เลือก คัดลอกรหัสสถานที่เริ่มต้นของคุณ และวางในเซลล์ สถานที่ ID (F2) ในแท็บ เริ่ม ของ Google Sheet ของคุณ

การปรับปรุงค่าสคริปต์

  1. ในแท็บ Update Potion Shop ของหน้าเวร์ดี้ เปลี่ยนแป้งค์ใด ๆ ที่คุณต้องการและคลิกปุ่ม Update Script 2. หาก Google Sheets ขอให้คุณเพิ่มอẩานเพื่ออนุญาตให้ใช้สคริปต์นี้ คลิก ตกลง และอนุญาตให้บัญชีของคุณประมวลผลสคริปต์นี้
  2. ใน Studio คุณสามารถทดสอบ Potion Shop เพื่อดูการเปลี่ยนแปลงที่สะท้อนได้ จากหน้าต่าง Explorer คุณสามารถเปิดสคริปต์ ReplicatedStorage > ItemList เพื่อตรวจสอบการเปลี่ยนแปลง