Skip to content Skip to sidebar Skip to footer

Upload Files With Sharepoint REST API And Javascript From Outside Of Sharepoint?

I need to upload files (and metadata) on demand without human action to a Sharepoint server. Could I do with Sharepoint REST API form outside Sharepoint? Could I to launch a NodeJS

Solution 1:

Yes, we can do REST API POST call to SharePoint from outside of SharePoint i.e. external web site. Lets say your external website is "AAA" and sending data to SharePoint site i.e. "BBB" - so in order to authenticate in SharePoint we need to generate the client_id and client_secret from SharePoint site - then while writing the POST call to SharePoint we need to use the client_id and client_secret code.

Below are the steps how to generate "client_id" and "client_secret" from SharePoint:

In order to achieve this access - we need to generate a client_id and client_secret from "https://BBB.sharepoint.com" site and uses that code in "AAA" site while sending the data "BBB" site.

There is a long steps how to the generate the client_id and client_secret code.

Step 1: Register Add-In

Go to the this page of your BBB site https://.SharePoint.com/_layouts/15/appregnew.aspx

Here you will get: client id and client secret

Save this information in notepad.

Step 2: Grant Permissions to Add-In

Go to this page of your BBB site:

https://.sharepoint.com/_layouts/15/appinv.aspx

Enter the "Client ID" in the App ID field and click on Lookup button

Now enter the below permission request in XML format:

<AppPermissionRequests AllowAppOnlyPolicy="true">
    <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="Read" />
</AppPermissionRequests>

Step 3: Retrieve the Tenant ID

In POST man tool do a GET request for this URL(BBB site):

https:///sharepoint.com/_vti_bin/client.svc/

From the Header section you will get the realm value which is nothing but your client ID.

So finally while you are sending the client id and client secret to the AAA site(your source site from where you are uploading the document), it should be in the below format:

client_id   ClientID@TenantID
client_secret   ClientSecret

Example:

client_id: 4b4276d0-74cd-4476-b66f-e7e326e2cb93@10267809-adcb-42b6-b103-c7c8190b3fed
client_secret: nuC+ygmhpadH93TqJdte++C37SUchZVK4a5xT9XtVBU=

Now when the other system here it is application "AAA site" performing the POST call to the "SharePoint site here it is https://BBB.sharepoint.com", they need to use these two client_id and client_secret key.

Detailed explanation is here:

https://www.ktskumar.com/2017/01/access-sharepoint-online-using-postman/

Recommendation:

Download the POST man tool from here https://www.getpostman.com/downloads/

Do the sample POST request to SharePoint using this tool and the above client_id and client_secret code - then generate POST request API code whichever language suits for you almost all programming languages are available using the POST man tool - if you are working in C# - you can get the C# equivalent code for the POST call - then you can use the same piece of code in your actual application in Visual Studio or whichever tool you are using.


Solution 2:

If you want to use Node JS to access SharePoint, we can use node-sp-auth to pass the authentication. node-sp-auth allows you to perform SharePoint unattended (without user interaction) http authentication with nodejs using different authentication techniques.

More information is here:

node-sp-auth - nodejs to SharePoint unattended http authentication


Post a Comment for "Upload Files With Sharepoint REST API And Javascript From Outside Of Sharepoint?"