Tim Edelmann Posted February 8, 2018 Report Share Posted February 8, 2018 Hey everyone, as part of our integration process we would like to be able to make api calls "from outside". Since we need to create a session for this, we noticed a difference between python and javascript api. On python side it is possible to create a session object without giving any parameters, if the corresponding environment-variables are set correctly. In javascript this seems to be not allowed! export class Session { /** * Construct Session instance with API credentials. * * @param {string} serverUrl - ftrack server URL * @param {string} apiUser - ftrack username for API user. * @param {string} apiKey - User API Key * @param {Object} options - options * @param {Boolean} [options.autoConnectEventHub=false] - Automatically connect to event hub, * @param {Array|null} [options.serverInformationValues=null] - List of server information values to retrieve. * @param {Object} [options.eventHubOptions={}] - Options to configure event hub with. * * @constructs Session */ constructor( serverUrl, apiUser, apiKey, { autoConnectEventHub = false, serverInformationValues = null, eventHubOptions = {}, clientToken = null, } = {} ) { if (!serverUrl || !apiUser || !apiKey) { throw new Error( 'Invalid arguments, please construct Session with ' + '*serverUrl*, *apiUser* and *apiKey*.' ); } . . . Why do we have the option to create api-keys without giving it an api-user (on "ftrack-web-ui/system-preferences/API keys") when we cannot use them with the javascript api? How are we supposed to achieve external api-calls? thanks in advance Tim Link to comment Share on other sites More sharing options...
Lucas Correia Posted February 9, 2018 Report Share Posted February 9, 2018 Hi Tim, The API (both JS and Python clients) always requires a valid user, even when using "Global" API keys. Where are you using the JavaScript API? As a widget in ftrack, another web page or from Node? In a web widget, we inject the users credentials (assuming the option has been set in the dashboard options). See the ftrack.widget.load event. If you are using ftrack-web-widget or ftrack-spark-base (see resources and examples) you can call ftrackWidget.getCredentials() at any time to get the users credentials). In NodeJS, you can replicate the behaviour of the Python API in the following way: const session = new ftrack.Session( process.env.FTRACK_SERVER, process.env.FTRACK_API_USER, process.env.FTRACK_API_KEY ); Regards, Lucas Link to comment Share on other sites More sharing options...
Tim Edelmann Posted February 9, 2018 Author Report Share Posted February 9, 2018 hey Lucas, thanks for the answer! We are using the javascript API from node-style context. Good to know, that a valid user is always needed. But knowing that, we wonder, what purpose the Global API keys have? Since they don't need a username when created, how should they be used? Tim Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.