(Special thanks to user @jarrad, who originally posted these instructions on the forum)
Note about "Enterprise ID"s: If you have an individual account you will follow the same steps as an enterprise account. Everyone automatically obtains an enterprise ID if they log in as a developer.
1. Go to developer.box.com and login with your Box account to enable yourself as a developer
2. Once in your developers console click “Create new app”
3. Choose Enterprise Integration
4. Choose 0Auth 2.0 with JWT (Server Authentication)
5. Give your app a name, click create then click “view your app”
6. Scroll down to add your public key. At this point you will be asked to setup 2 step authentication if you have not already done so
7. Open the Bubble editor and go to Settings > API, click "Download public JSON web key"
8. Copy the entire contents of the text file into the public key field in the Box console
9. You will now see a short public key id – copy and paste that into public key id in the box
10. Set your “Application scopes” & “Advanced features” as needed / desired (if you change any of these settings later, you must follow step 16 to reauthorize the app for the changes to take effect)
11. Now scroll up and copy the Client ID – paste it into BOTH Client ID & API key sections of the Box plugin settings in Bubble
12. Copy the client secret – paste it into the client secret section of the Box plugin settings
13. Now in the Box interface, click “General” on the left hand side, find and copy the User ID & Enterprise ID – paste them into the User ID & Enterprise ID sections of the Box plugin settings in Bubble
14. In the Box interface, at the top right, click the account dropdown (seen as a head icon) > “Admin console”
15. Now on the top right of your browser click the gear icon > Business settings
16. Click the tab “Apps” then authorize the new app
17. Enter the Client ID – the same as the API key you put in the Box plugin settings. Then click next to authorize.
Good to know:
Uploads will go to your main account, inside a folder that you set for the upload element
Deleting a thing will remove it from Bubble as a data record so it is gone as far as the app is concerned, but the file will remain in your Box account
Don’t forget you can set the privacy setting in Data > Privacy in Bubble
When you drop a file into an element it will automatically upload to Box, but you should treat the upload as if it’s uploading to Bubble and still create a Thing so you can reference the data