Hello,
I am building an App for local computer with Unreal. For convenient use, it is better that specific user use their own Cesium token when they install this App. I wonder if this is possible?
Alternative is the token is hardly fixed in the App (using my Cesium account under specific commerical plan) .
I myself prefer to the first plan, as it is safer and much flexible. If they are heavy user, they can buy corresonding Cesium plan themselves. And it is saved in their own computer, should be considerable safe for them.
Best,
Lu
Hey @gmbcrazy, interesting use case. I want to make sure I understand what you’re after before giving you a definitive answer.
I’ll check internally whether having end-users bring their own Cesium ion token is something that’s supported from a licensing/usage standpoint. One thing I think is worth flagging: if your app references assets you’ve uploaded to your own ion account, your end-users may not be able to access those with their own token. They may only be able to load assets available in their own account (like Asset Depot assets).
Quick question to help me give you the right answer: does your app only use Asset Depot assets (Cesium World Terrain, OSM Buildings, etc.), or does it also load assets you’ve uploaded to your account?
Also, is this non-commercial?
Cheers, I’ll follow up once I have clarity on the token side.
Hey again @gmbcrazy,
This use case should be okay, however if any users activity, or the application itself, is commercial in nature they should pursue a commercial ion license, and you are required to make this clear to your users.
I’ll copy in some advance from a colleague that should get you started on a method to achieve this:
[you] could create an interface to prompt the user for their token and then supply the token to Cesium for Unreal by setting UCesiumIonServer::GetDefaultServer()->DefaultIonAccessToken. This should be doable via Blueprints as well.
It might make sense to have the user login to Cesium ion directly using OAuth2, just like we do in-editor. In which case there’s a lot of code in Cesium Native that would help with this (CesiumIonClient::Connection mostly), but it won’t be accessible from Blueprints. They’ll need to use C++.
Hopefully that helps!
Hello Darcy,
Thank you for your quick and detailed responses.
My current prototype is non-commercial. It uses Cesium for Unreal with Google Photorealistic 3D Tiles and Cesium World Terrain through Cesium ion, not private assets uploaded to my own ion account. I am trying to understand the right architecture and licensing path in case it later develops into a broader or commercial application.
I’ll explore the runtime token approach you mentioned and see whether it can be handled through Blueprints or a small C++ bridge.
Thank your colleague and you again — this gives me a clearer path forward.
Best,
Lu