msgraphr
                                
                                 msgraphr copied to clipboard
                                
                                    msgraphr copied to clipboard
                            
                            
                            
                        📇Read Office 365 data via the MS Graph API and R
msgraphr
NOTE: This package is quite raw. I am not currently using Office 365 and cannot develop or debug features apart from the general MS Graph interface. Pull Requests are most welcome!
msgraphr is a minimal R wrapper of the SharePoint Online (Office 365) APIs, aiming to allow R users to pull down list information as dataframes for local analysis. Liberate your data from SharePoint!
Installation
devtools::install_github("davidski/msgraphr")
Authentication
- 
Create an application at https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade with the following fields: 
- 
NameName of your MS Graph app e.g.msgraphr_query.
- 
Under Redirect URIsat a web link pointing tohttp://localhost:1410.
- 
Take note of the Application Id, this will be yourclient_id.
- 
Under Certificates & Secretsgenerate an application secret and note the value for use as theClient Secret.
- 
Add a Platform and select Web.- Allow Implicit Flow: Unchecked
 
- 
Under API Permissions, alter the Microsoft Graph permissions to specify the scopes for which you wish to grant access. 
- 
(OPTIONAL, BUT RECOMMENDED) Set the MSGRAPH_PATenvironment variable to a file location on disk formsgraphrto cache the Oauth2.0 token. Defaults to the current working directory.
- 
To perform the initial authentication. msgraph_auth(client_id = "REDACTED", client_secret = "REDACTED" )
Scope used
- msgraphrrequests the following access scopes:- Userand- Sites.Read.Allfor SharePoint online read access
- offline_userso that tokens may be auto-refreshed without further user action
 
Usage
library(tidyverse)
library(msgraphr)
# auth
token <- msgraph_auth()
# list all the sites to which you have accesss
get_sites(search = "", token) %>% head(1) %>% pull(id) -> my_site
# list all the lists on that site
get_lists(site_id = my_site, token) %>% head(1) %>% pull(id) -> my_list
# fetch all the entries on that list
get_list_entries(site_id = my_site, list_id = my_list, token)
# go forth and do amazing things!
References
See the MS Graph API documentation.
Contributing
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
License
The MIT License applies.