- Notifications
You must be signed in to change notification settings - Fork23
A Gmail API client for Elixir
License
craigp/elixir-gmail
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
A simple Gmail REST API client for Elixir.
You can find the hex packagehere, and the docshere.
You can find documentation for Gmail's API athttps://developers.google.com/gmail/api/
First, add the client to yourmix.exs dependencies:
defdepsdo[{:gmail,"~> 0.1"}]end
Then run$ mix do deps.get, compile to download and compile your dependencies.
Finally, add the:gmail application as your list of applications inmix.exs:
defapplicationdo[applications:[:logger,:gmail]]end
Before you can work with mail for a user you'll need to start a process for them.
{:ok,pid}=Gmail.User.start_mail("user@example.com","user-refresh-token")
When a user process starts it will automatically fetch a new access token for that user. Thenyou can start playing with mail:
# fetch a list of threads{:ok,threads,next_page_token}=Gmail.User.threads("user@example.com")# fetch the next page of threads using a page token{:ok,_,_}=Gmail.User.threads("user@example.com",%{page_token:next_page_token})# fetch a thread by ID{:ok,thread}=Gmail.User.thread("user@example.com","1233454566")# fetch a list of labels{:ok,labels}=Gmail.User.labels("user@example.com")
Check the docs for a more complete list of functionality.
- Threads
getlistmodifydeletetrashuntrash
- Messages
deletegetinsertlistmodifysendtrashuntrashimportbatchDelete
- Labels
createdeletelistupdategetupdatepatch
- Drafts
listgetdeleteupdatecreatesendsend(with upload)
- History
list
- Attachments
get(thanks to @killtheliterate)
As of now the library doesn't do the initial auth generation for you; you'llneed to create an app on theGoogle DeveloperConsole to get a client ID and secretand authorize a user to get an authorization code, which you can trade for anaccess token.
The library will however, when you supply a refresh token, use that to refreshan expired access token for you. Take a look in thedev.exs.sample configfile to see what your config should look like.
- Stop mocking HTTP requests and useBypass instead
- Add format option when fetching threads
- .. and messages
- .. and drafts
- Batched requests
- Document the config (specifically pool size)
About
A Gmail API client for Elixir
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors5
Uh oh!
There was an error while loading.Please reload this page.
