msgraphr
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:UserandSites.Read.Allfor SharePoint online read accessoffline_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.