Exposing the Gmail API from R.
Get the released version from CRAN:
install.packages("gmailr")
Or the development version from github with:
# install.packages("devtools")
devtools::install_github("jimhester/gmailr")
- retrieve data from your email
- drafts:
my_drafts = drafts()
- history:
my_history = history(start_num)
- labels:
my_labels = labels()
- messages:
my_messages = messages("search query")
- threads:
my_threads = threads("search query")
- drafts:
- Create and send emails and drafts: see sending_messages vignette
- manage email labels programmatically:
modify_thread(thread_id, add_labels=c("label_1"), remove_labels=c("label_2"))
- put things in the gmail trash
- messages:
trash_message(message_id)
- threads:
trash_thread(thread_id)
- messages:
- take things out of the gmail trash
- messages:
untrash_message(message_id)
- threads:
untrash_thread(thread_id)
- messages:
- delete directly without using the trash
- messages:
delete_message(message_id)
- threads:
delete_thread(thread_id)
- messages:
By default gmailr will use a global project. However if you are going to be a heavy user and will do a lot of queries please setup your own project with the steps below. This often works best via Google Chrome.
-
Pick a project name; referred to as
PROJ-NAME
from now on. -
Register a new project at https://console.developers.google.com/project.
-
From Overview screen, look at Google Apps APIs and select the Gmail API. Enable it.
-
Click "Go to Credentials" or navigate directly to Credentials.
-
You want a get a client ID and will need to "Configure consent screen".
- The email should be pre-filled. Enter
PROJ-NAME
as Product name. Other fields can be left blank.
- The email should be pre-filled. Enter
-
Returning to the "client id" process:
- Application Type: "Other"
- Enter
PROJ-NAME
again as the name. - Click "Create"
-
Client id and secret will appear in a pop-up which you can dismiss via "OK". Instead use download icon at far right of your project's listing to download a JSON file with all of this info. Move to an appropriate location and consider renaming as
PROJ-NAME.json
. -
Use the downloaded JSON file as input to
use_secret_file()
, prior to othergmailr
calls.``` r use_secret_file('PROJ-NAME.json') ```
- More unit tests and better coverage
- More (complicated) examples
- Email statistics
- Programmatic emailing
- Returning data frames in addition to native Gmail API objects which are usually a nested list.
- Support all the formats of users.messages:get
- Send Email with R - Jenny Bryan (@jennybc)
- Gmail Stats - Ahmad Al-Kashef (@alkashef)