mwagena / gmail-api-wrapper
Laravel 5 wrapper for Gmail API
dev-develop
2017-05-16 18:12 UTC
Requires
- google/apiclient: ^2.0
- illuminate/support: 5.0.*|5.1.*|5.2.*|5.3.*|5.4.*
- nesbot/carbon: ^1.22
- swiftmailer/swiftmailer: ^5.4
Requires (Dev)
- php: >=5.5.9
This package is not auto-updated.
Last update: 2024-11-18 08:21:17 UTC
README
Setup the api:
Step 1: Turn on the Gmail API
- Use this wizard to create or select a project in the Google Developers Console and automatically turn on the API. ClickContinue, thenGo to credentials.
- On theAdd credentialsto your project page, click theCancelbutton.
- At the top of the page, select theOAuth consent screentab. Select anEmail address, enter aProduct nameif not already set, and click theSavebutton.
- Select theCredentialstab, click theCreate credentialsbutton and selectOAuth client ID.
- Select the application type webapp, enter the name of your choosings, fill out the redirect uri to your project and click theCreate button.
- You will now receive a Client-ID and Client secret, copy and paste the settings somewere save since you will be needing these later.
Step 2: Sign in with the Client-ID and secret
Initiate the Gmail class
$gmail = new Gmail();
$gmail->getAuthUrl();
Use the returned code from the previous call to create a access + refresh token
$gmail->makeAccessToken($code);
Step 3: make use of it all
Initiate connection
$gmail = MartijnWagena\Gmail\Mail::create()
->setAccessToken($access_token, $refresh_token)
->setStartDate($date);
Check if token refresh needed
$gmail->isAccessTokenExpired();
Fetch all messages starting from the 'setStartDate', you only receive the ids of the messages
$gmail->fetch();
To fetch details of a message, use the code below
$gmail->getMessage($id, $threadId);
Send mails with the api
$gmail = MartijnWagena\Gmail\Send::create()->setAccessToken($access_token, $refresh_token);
$gmail->sendMail(
[['email' => 'name@mail.com']],
[['email' => 'name2@mail.com']],
[['email' => 'name3@mail.com']],
'your subject',
'your message body',
'inreplytomessageId',
[] // array of attachments of type File
);
Step 5: If wanted, revoke access
$gmail = MartijnWagena\Gmail::create()->setAccessToken($access_token, $refresh_token);
$gmail->revokeAccess();