Displaying SharePoint data on the live site

If you have data stored on a SharePoint Online server, Xperience enables you to retrieve this data and include it on your live site – you can display images and provide download links for files.

After you configure a SharePoint integration connection, you can display SharePoint data using the API within the CMS.SharePoint namespace:

  1. In Visual Studio, open your project and navigate to where you want to display the data.

  2. In the code, get an instance of a SharePoint service using a configured SharePoint integration connection.

    using System.Data;
    using CMS.SharePoint;
    
    // Use the code name of your SharePoint connection and the code name of your site
    SharePointConnectionInfo connectionInfo = SharePointConnectionInfoProvider.GetSharePointConnectionInfo("ConnectionCodename", "SiteName");
    
    ISharePointListService service = SharePointServices.GetService<ISharePointListService>(connectionInfo.ToSharePointConnectionData());
  3. Retrieve a set of SharePoint data. To obtain the name of a SharePoint library, open your SharePoint server, go to the Site Contents tab and use the library name as specified in the Name column. Do not use the code name of a library from the SharePoint application in the Xperience administration interface.

    DataSet images = service.GetListItems("SharePointLibraryName");
  4. Iterate through the data and retrieve URLs from the FileRef row using the GetSharePointFileUrl method.

    SharePointUrlProvider sharePointUrlProvider = new SharePointUrlProvider(connectionInfo.SharePointConnectionName);
    
    foreach (DataRow row in images.Tables[0].Rows)
    {
        // Retrieves the URL of a piece of data, which you can now process, e.g. by passing it to a model
        string fileUrl = sharePointUrlProvider.GetSharePointFileUrl(row["FileRef"].ToString());
    
        // You can also access other available metadata
        string fileTitle = row["Title"].ToString()
    }
  5. Use the retrieved URLs to display the content on your website (for example, use a model class to pass the URLs to a view).

If you want to see a sample implementation of a SharePoint integration, visit Example - Displaying a SharePoint picture library.