Skip to main content

Hi,

 

I have an Excel Spreadsheet which is on SharePoint Online which I would like to read the contents of using FME Desktop.

 

I am already able to use the Microsoft Sharepoint List Reader for reading in the metadata for the particular excel spreadsheet. To do this I created a WebConnection by creating a new connection using the "Microsoft Sharepoint Online (Template) ' and changing the eTENANT] parameter in the 'URL' under the 'Authorization Parameters' settings.

 

I saw that recently Safe released the SharePointOnlineConnector transformer and it sounds like it is just what I need to be able to read the actual contents of the Excel File.

 

However, when I went to look for the site which contains the Excel Spreadsheet, it wasn't in the list of 'Sites' under 'Download Options' in the SharePointOnlineConnector. A lot of other sites from my company were listed so the connection seems to be ok. I am assuming it must be some sort of permissions thing. But since I was able to access the metadata for the Excel File using the Sharepoint List Reader, I would have thought I would already have the permissions.

 

Do I need to ask the site owner to give me different permissions before I can access the site via the SharePointOnlineConnector? If so, what permissions exactly do I need to ask for? Or is there another issue with my methodology?

 

Kind regards,

 

 

 

Tagging @gerhardatsafe​ on this one.


Hi @aquamarine​,

The SharePointOnlineConnector & the SharePoint List format are using to different APIs and currently the OAuth process of Microsoft does not allow us to use the same Web Connection to access both APIs (Microsoft Graph & SharePoint REST API v1).

 

Did you modify the Web Service Definition for the new SharePointOnlineConnector called "Microsoft SharePoint Online (safe.microsoft-sharepoint)"? If you didn't update the client ID matching an app that you registered in your Microsoft Azure account you probably still use the default which is just an example Web Service Definition pointing to one of our registered Apps. This is not recommended for production and your organization might not allow our app to access all sites that you are looking for.

 

I hope this helps.


Hi @aquamarine​,

The SharePointOnlineConnector & the SharePoint List format are using to different APIs and currently the OAuth process of Microsoft does not allow us to use the same Web Connection to access both APIs (Microsoft Graph & SharePoint REST API v1).

 

Did you modify the Web Service Definition for the new SharePointOnlineConnector called "Microsoft SharePoint Online (safe.microsoft-sharepoint)"? If you didn't update the client ID matching an app that you registered in your Microsoft Azure account you probably still use the default which is just an example Web Service Definition pointing to one of our registered Apps. This is not recommended for production and your organization might not allow our app to access all sites that you are looking for.

 

I hope this helps.

Hi @gerhardatsafe​  thank you very much for your reply.

 

No I didn't update the client ID in the 'Microsoft SharePoint Online (safe.microsoft-sharepoint)' Web Service Definition. The only Web Service Definition that I edited was the 'Microsoft SharePoint Online (Template)' which I used for the SharePoint List Reader, which would explain why I could see the site using the SharePoint List Reader and not when using the SharePointOnlineConnector.

 

When I edited the 'Microsoft SharePoint Online (Template)' Web Service Definition, the only thing I changed was to replace the pTENANT] parameter in the 'URL' field with my organisations' sharepoint site, which seemed to work. Do I need to do something similar when editing the 'Microsoft SharePoint Online (safe.microsoft-sharepoint)' Web Service Definition? I can't see a 9TENANT] parameter anywhere here .... Or do I simply need to find out my organisation's 'Client ID' (and 'Client Secret' ??) values and input them in the 'Client Information' section?

 

Thanks,


Hi @gerhardatsafe​  thank you very much for your reply.

 

No I didn't update the client ID in the 'Microsoft SharePoint Online (safe.microsoft-sharepoint)' Web Service Definition. The only Web Service Definition that I edited was the 'Microsoft SharePoint Online (Template)' which I used for the SharePoint List Reader, which would explain why I could see the site using the SharePoint List Reader and not when using the SharePointOnlineConnector.

 

When I edited the 'Microsoft SharePoint Online (Template)' Web Service Definition, the only thing I changed was to replace the TENANT] parameter in the 'URL' field with my organisations' sharepoint site, which seemed to work. Do I need to do something similar when editing the 'Microsoft SharePoint Online (safe.microsoft-sharepoint)' Web Service Definition? I can't see a eTENANT] parameter anywhere here .... Or do I simply need to find out my organisation's 'Client ID' (and 'Client Secret' ??) values and input them in the 'Client Information' section?

 

Thanks,

Hi @aquamarine​,

You won't need a tenant because the API endpoint is graph.microsoft.com, but you should make sure that the redirect URI and the permissions of your app in Azure match with the Web Service Definition. For example the recommended scope for the SharePointOnlineConnector is Sites.ReadWrite.All. So your Azure App should have at least the same permissions for the Microsoft Graph API (note that these are different permission than the SharePoint permissions you might have set on the app).


Reply