Overview: In the SaaS Document Management space Box.com is a competitor to SharePoint Online. A medium size client request recently came into integrate with a client and deliver files into Box.com, as it is something I have not done before I was eager to see how easy it is.
Requirement:
- I merely need to create folders within the clients tenant if needed and drop files into specific folders from a scheduled job that runs every 5 minutes.
- Box.com has API similar to SharePoint CSOM to pragmatically work with your Box tenant.
- Box.com functionality is specific to Documents so the API is really small and easy to learn.
- There are multiple ways to pragmatically authenticate to you Box.com tenant, PoC keeps it simple. Actual must use JWT for the connecting service account.
Implementation Details:
Box.com has several was to problematically connect and to test the API's. For my PoC I used the Developer Token approach. We should switch this over to the JWT OAuth approach but for the PoC and working with the API's I used the Developer Token approach.
1. Once you tenant is setup and you have configured your client, set the developer Token that last for 1 hrs as shown in the screen above.
2. Create a new C# console and add the Box C# SDK reference as shown below.
3. You will need to add the Developer Token, Client Secret and ClientId in order to programtically connect from the console. Below is my app.config.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<appSettings>
<add key="ClientId" value="f9y555fiqwqcbv555lst88dmzbxzqa7n"/>
<add key="ClientSecret" value="CoTT555U7oN555wKF555aPYz5555"/>
<add key="DeveloperToken" value="TjxJh555ivvW555EE555NTerb555"/>
</appSettings>
4. Connect to your tenant using Box.com's API's/ SDK
5. Run the Console and the console looks as follows:
6. Code the file upload logic:
Final Thoughts:
- Overall I think Box.com is a good option if you don't already have O365. It's pretty expensive for a small feature set but it is a valid option for clients.
- The search indexing is ridiculously slow so very hard to build search based solutions using the API.
- Microsoft Flow has connectors for Box.com before developing, check if Flow can meet your migration, moving requirement.