rblx-open-cloud


Namerblx-open-cloud JSON
Version 2.2.4 PyPI version JSON
download
home_pagehttps://github.com/treeben77/rblx-open-cloud
SummaryAPI wrapper for Roblox Open Cloud
upload_time2025-01-24 03:50:54
maintainerNone
docs_urlNone
authortreeben77
requires_python>=3.9.0
licenseMIT
keywords roblox open-cloud data-store place-publishing mesageing-service
VCS
bugtrack_url
requirements requests aiohttp cryptography pyjwt python-dateutil PyNaCl
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # rblx-open-cloud

[![Discord Server](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdiscord.com%2Fapi%2Fv10%2Finvites%2F4CSc9E5uQy%3Fwith_counts%3Dtrue&query=%24.approximate_member_count&suffix=%20members&style=for-the-badge&logo=discord&logoColor=white&label=Discord%20Server&labelColor=%235865F2&color=%23353535)](https://discord.gg/4CSc9E5uQy)
[![DevForum Post](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdevforum.roproxy.com%2Ft%2F1991959.json&query=%24.like_count&suffix=%20Likes&style=for-the-badge&logo=robloxstudio&logoColor=white&label=DevForum%20Post&labelColor=%23009fff&color=%23353535)](https://devforum.roblox.com/t/1991959)
[![Downloads](https://img.shields.io/pypi/dm/rblx-open-cloud?style=for-the-badge&logo=pypi&logoColor=white&label=PyPi%20Downloads&labelColor=%23006dad&color=%23353535)](https://pypi.org/project/rblx-open-cloud)

rblx-open-cloud is a Python API wrapper for [Roblox Open Cloud](https://create.roblox.com/docs/cloud/open-cloud).

### Key Features
- Support for most endpoints, including the OAuth2 flow and authentication.
- Allows both syncronous and asyncronous usage.
- Logic for operation polling and internal error retrying.

**Documentation: https://rblx-open-cloud.readthedocs.io/en/latest/**

## Quickstart

### Getting Started

1. Install the library with pip in your terminal.

```sh
# Stable (PyPi, recommended)
pip install rblx-open-cloud~=2.0

# Development (GitHub)
pip install "rblx-open-cloud @ git+https://github.com/treeben77/rblx-open-cloud@main"
```

2. Create an API key from the [Creator Dashboard](https://create.roblox.com/credentials). You can read [Managing API Keys](https://create.roblox.com/docs/open-cloud/managing-api-keys) for help.

You've got the basics down, below are examples for some of the APIs.

### Accessing Data Stores

```py
import rblxopencloud

# create an Experience object with your experience ID and your api key
# TODO: replace '13058' with your experience ID
experience = rblxopencloud.Experience(13058, api_key="api-key-from-step-2")

# get the data store, using the data store name and scope (defaults to global)
datastore = experience.get_data_store("data-store-name", scope="global")

# sets the key 'key-name' to 68 and provides users and metadata
# DataStore.set does not return the value or an EntryInfo object, instead it returns a EntryVersion object.
datastore.set("key-name", 68, users=[287113233], metadata={"key": "value"})

# get the value with the key 'number'
# info is a EntryInfo object which contains data like the version code, metadata, userids and timestamps.
value, info = datastore.get("key-name")

print(value, info)

# increments the key 'key-name' by 1 and ensures to keep the old users and metadata
# DataStore.increment retuens a value and info pair, just like DataStore.get and unlike DataStore.set
value, info = datastore.increment("key-name", 1, users=info.users, metadata=info.metadata)

print(value, info)

# deletes the key
datastore.remove("key-name")
```

### Publishing To Message Service

**NOTE: Messages published with Open Cloud only arrive in live game servers and not in Studio.**

```py
import rblxopencloud

# create an Experience object with your experience ID and your api key
# TODO: replace '13058' with your experience ID
experience = rblxopencloud.Experience(13058, api_key="api-key-from-step-2")

# publish a message with the topic 'topic-name'
experience.publish_message("topic-name", "Hello World!")
```

### Uploading Assets

**NOTE: Only `Decal`, `Audio`, and `Model` (fbx) are supported right now.**

```py
import rblxopencloud

# create an User object with your user ID and your api key
# TODO: replace '13058' with your user ID
user = rblxopencloud.User(13058, api_key="api-key-from-step-2")
# or, create a Group object:
group = rblxopencloud.Group(13058, api_key="api-key-from-step-2")

# this example is for uploading a decal:
with open("path/to/file.png", "rb", encoding="utf-8") as file:
    asset = user.upload_asset(file, rblxopencloud.AssetType.Decal, "name", "description").wait()

print(asset.id)
```

Examples for more APIs are avalible in the [examples](/examples/) directory.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/treeben77/rblx-open-cloud",
    "name": "rblx-open-cloud",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9.0",
    "maintainer_email": null,
    "keywords": "roblox, open-cloud, data-store, place-publishing, mesageing-service",
    "author": "treeben77",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/3e/a6/b028db86ba421cac997af106371e5ef408297b81750ae4301616c47917d6/rblx_open_cloud-2.2.4.tar.gz",
    "platform": null,
    "description": "# rblx-open-cloud\n\n[![Discord Server](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdiscord.com%2Fapi%2Fv10%2Finvites%2F4CSc9E5uQy%3Fwith_counts%3Dtrue&query=%24.approximate_member_count&suffix=%20members&style=for-the-badge&logo=discord&logoColor=white&label=Discord%20Server&labelColor=%235865F2&color=%23353535)](https://discord.gg/4CSc9E5uQy)\n[![DevForum Post](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdevforum.roproxy.com%2Ft%2F1991959.json&query=%24.like_count&suffix=%20Likes&style=for-the-badge&logo=robloxstudio&logoColor=white&label=DevForum%20Post&labelColor=%23009fff&color=%23353535)](https://devforum.roblox.com/t/1991959)\n[![Downloads](https://img.shields.io/pypi/dm/rblx-open-cloud?style=for-the-badge&logo=pypi&logoColor=white&label=PyPi%20Downloads&labelColor=%23006dad&color=%23353535)](https://pypi.org/project/rblx-open-cloud)\n\nrblx-open-cloud is a Python API wrapper for [Roblox Open Cloud](https://create.roblox.com/docs/cloud/open-cloud).\n\n### Key Features\n- Support for most endpoints, including the OAuth2 flow and authentication.\n- Allows both syncronous and asyncronous usage.\n- Logic for operation polling and internal error retrying.\n\n**Documentation: https://rblx-open-cloud.readthedocs.io/en/latest/**\n\n## Quickstart\n\n### Getting Started\n\n1. Install the library with pip in your terminal.\n\n```sh\n# Stable (PyPi, recommended)\npip install rblx-open-cloud~=2.0\n\n# Development (GitHub)\npip install \"rblx-open-cloud @ git+https://github.com/treeben77/rblx-open-cloud@main\"\n```\n\n2. Create an API key from the [Creator Dashboard](https://create.roblox.com/credentials). You can read [Managing API Keys](https://create.roblox.com/docs/open-cloud/managing-api-keys) for help.\n\nYou've got the basics down, below are examples for some of the APIs.\n\n### Accessing Data Stores\n\n```py\nimport rblxopencloud\n\n# create an Experience object with your experience ID and your api key\n# TODO: replace '13058' with your experience ID\nexperience = rblxopencloud.Experience(13058, api_key=\"api-key-from-step-2\")\n\n# get the data store, using the data store name and scope (defaults to global)\ndatastore = experience.get_data_store(\"data-store-name\", scope=\"global\")\n\n# sets the key 'key-name' to 68 and provides users and metadata\n# DataStore.set does not return the value or an EntryInfo object, instead it returns a EntryVersion object.\ndatastore.set(\"key-name\", 68, users=[287113233], metadata={\"key\": \"value\"})\n\n# get the value with the key 'number'\n# info is a EntryInfo object which contains data like the version code, metadata, userids and timestamps.\nvalue, info = datastore.get(\"key-name\")\n\nprint(value, info)\n\n# increments the key 'key-name' by 1 and ensures to keep the old users and metadata\n# DataStore.increment retuens a value and info pair, just like DataStore.get and unlike DataStore.set\nvalue, info = datastore.increment(\"key-name\", 1, users=info.users, metadata=info.metadata)\n\nprint(value, info)\n\n# deletes the key\ndatastore.remove(\"key-name\")\n```\n\n### Publishing To Message Service\n\n**NOTE: Messages published with Open Cloud only arrive in live game servers and not in Studio.**\n\n```py\nimport rblxopencloud\n\n# create an Experience object with your experience ID and your api key\n# TODO: replace '13058' with your experience ID\nexperience = rblxopencloud.Experience(13058, api_key=\"api-key-from-step-2\")\n\n# publish a message with the topic 'topic-name'\nexperience.publish_message(\"topic-name\", \"Hello World!\")\n```\n\n### Uploading Assets\n\n**NOTE: Only `Decal`, `Audio`, and `Model` (fbx) are supported right now.**\n\n```py\nimport rblxopencloud\n\n# create an User object with your user ID and your api key\n# TODO: replace '13058' with your user ID\nuser = rblxopencloud.User(13058, api_key=\"api-key-from-step-2\")\n# or, create a Group object:\ngroup = rblxopencloud.Group(13058, api_key=\"api-key-from-step-2\")\n\n# this example is for uploading a decal:\nwith open(\"path/to/file.png\", \"rb\", encoding=\"utf-8\") as file:\n    asset = user.upload_asset(file, rblxopencloud.AssetType.Decal, \"name\", \"description\").wait()\n\nprint(asset.id)\n```\n\nExamples for more APIs are avalible in the [examples](/examples/) directory.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "API wrapper for Roblox Open Cloud",
    "version": "2.2.4",
    "project_urls": {
        "Homepage": "https://github.com/treeben77/rblx-open-cloud"
    },
    "split_keywords": [
        "roblox",
        " open-cloud",
        " data-store",
        " place-publishing",
        " mesageing-service"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6ed113884491074b5a38d4a3d4e59231c66ebf4d25bc90301a66446135cc772f",
                "md5": "6205e41ea1ae80c740fe785432dfa288",
                "sha256": "1096b7673eb0e17a74c7f1d0bdb54164d74e6033ec660c8aa86741c8968beb3f"
            },
            "downloads": -1,
            "filename": "rblx_open_cloud-2.2.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6205e41ea1ae80c740fe785432dfa288",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9.0",
            "size": 116753,
            "upload_time": "2025-01-24T03:50:52",
            "upload_time_iso_8601": "2025-01-24T03:50:52.816498Z",
            "url": "https://files.pythonhosted.org/packages/6e/d1/13884491074b5a38d4a3d4e59231c66ebf4d25bc90301a66446135cc772f/rblx_open_cloud-2.2.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3ea6b028db86ba421cac997af106371e5ef408297b81750ae4301616c47917d6",
                "md5": "3a8ec0dce64f00b4cb49210f58107950",
                "sha256": "1e98c23db41069c8504983beff6db8a8c6c6b3e4899e2254ab5c39992e2d8623"
            },
            "downloads": -1,
            "filename": "rblx_open_cloud-2.2.4.tar.gz",
            "has_sig": false,
            "md5_digest": "3a8ec0dce64f00b4cb49210f58107950",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9.0",
            "size": 89658,
            "upload_time": "2025-01-24T03:50:54",
            "upload_time_iso_8601": "2025-01-24T03:50:54.055942Z",
            "url": "https://files.pythonhosted.org/packages/3e/a6/b028db86ba421cac997af106371e5ef408297b81750ae4301616c47917d6/rblx_open_cloud-2.2.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-24 03:50:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "treeben77",
    "github_project": "rblx-open-cloud",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "requests",
            "specs": []
        },
        {
            "name": "aiohttp",
            "specs": []
        },
        {
            "name": "cryptography",
            "specs": []
        },
        {
            "name": "pyjwt",
            "specs": []
        },
        {
            "name": "python-dateutil",
            "specs": []
        },
        {
            "name": "PyNaCl",
            "specs": []
        }
    ],
    "lcname": "rblx-open-cloud"
}
        
Elapsed time: 5.96560s