• Stars
    star
    103
  • Rank 332,042 (Top 7 %)
  • Language
    PHP
  • License
    MIT License
  • Created over 9 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

👥 PHP library for the Google Contacts API (v3)

PHP Google Contacts v3 API

Packagist

PHP library for the Google Contacts API (v3)

💡 NOTE: If you're starting a new project, we strongly recommend using our PHP Google People API package instead. It is more capable than this package and uses a newer API which will probably be supported for longer.

Installation & Dependencies

This package and its dependencies can be installed using composer.

Just run composer require rapidwebltd/php-google-contacts-v3-api.

Setup

  1. Install required dependencies. See the 'Dependencies' section above.
  2. Copy or rename .config_blank.json to .config.json. Note the dot (.) at the beginning of the file name.
  3. Fill in the clientID, clientSecret and redirectUri in .config.json.
  • Note that redirectUri should be configure to point towards the redirect-handler.php file.
  • The clientID and clientSecret can be found in the Google Developers console at https://console.developers.google.com/ under 'APIs & auth' -> 'Credentials', after enabling the Contacts API.
  1. Go to authorise-application.php in a web browser. This should give you a URL to authorise your application for Google Contacts.
  2. Go to the authorisation URL provided by the previous step.
  3. Accept the permissions requested on the page displayed. You should then be redirected back to the redirect-handler.php file.
  4. The page generated by the redirect-handler.php file should then present you with a refresh token. Copy this into your .config.json.
  5. Setup is done!

Usage

After the library has been installed and the setup and account association steps have been completed, you can make use of the library.

If your framework does not do this for you, remember to include the require the vendor/autoload.php file on any pages you wish to make use of this library on.

Retrieving Google Contacts

The following code will retrieve all contacts from the associated Google account.

$contacts = rapidweb\googlecontacts\factories\ContactFactory::getAll();

var_dump($contacts);

The ContactFactory::getAll() method will return an array of Contact objects. The contact's details will be available as public member variables of these objects.

The selfURL contained within each Contact object is the unique reference to this particular contact. If you need to retrieve a specific contact in the future, you will need to store this selfURL.

To retrieve a specific contact (by its selfURL), use the following code.

$selfURL = "...";

$contact = rapidweb\googlecontacts\factories\ContactFactory::getBySelfURL($selfURL);

var_dump($contact);

This ContactFactory::getBySelfURL method will return a single Contact object.

Google Contact properties are accessed as follows.

$selfURL = "...";

$contact = rapidweb\googlecontacts\factories\ContactFactory::getBySelfURL($selfURL);

echo $contact->name;
echo $contact->phoneNumber;
echo $contact->email;
echo $contact->content;

Updating existing Google Contacts

The updating of Google Contacts using this library is done in a very object orientated manner.

You must first retrieve a Contact object using one of the methods mentioned previously. You can then modify the contact object's public member variables. To save these changes back to the Google Contacts service, you then pass the modified object to the ContactFactory::submitUpdates($contact) method.

The following code demonstrates in full retrieving a contact, modifying it and submitting the updates.

$selfURL = "...";

$contact = rapidweb\googlecontacts\factories\ContactFactory::getBySelfURL($selfURL);

var_dump($contact);

$contact->name = 'Test';
$contact->phoneNumber = '07812363789';
$contact->email = '[email protected]';
$contact->content = 'Note for example';

$contactAfterUpdate = rapidweb\googlecontacts\factories\ContactFactory::submitUpdates($contact);

var_dump($contactAfterUpdate);

Creating new Google Contacts

Creating a new Google Contact is very easy. Simply call the ContactFactory::create($name, $phoneNumber, $emailAddress) method, passing through appropriate parameters. This method will return the created contact as a Contact object including its newly assigned selfURL.

$name = "Frodo Baggins";
$phoneNumber = "06439111222";
$emailAddress = "[email protected]";
$note = "Note for example";

$newContact = rapidweb\googlecontacts\factories\ContactFactory::create($name, $phoneNumber, $emailAddress, $note);

Config file override

Each method has optional argument for config file override. It is useful when you want to use work with multiple Google accounts at the same time.

$customConfig = (object) array(
    'clientID' => '<clientId which you get according to setup above>',
    'clientSecret' => '<clientSecret which you get according to setup above>',
    'redirectUri' => '<your redirect uri>',
    'developerKey' => '<developer key>',
    'refreshToken' => '<refresh token specific for google account>'
);

$contacts = ContactFactory::getAll($customConfig);

You have to define all variables as the original config is completely ignored. To be more precise, it doesn't have to exist at all.

Examples

Take a look at the following files for basic examples of how to retrieve contacts. They can also be used to ensure you have currently associated your Google account with the library.

  • test.php
  • test_individual.php

More Repositories

1

php-google-people-api

👥 This package provides a user friendly way of interacting with Google Contacts via the Google People API.
PHP
100
star
2

php-switch-scripts

🔄 Scripts to aid in the setup of and switching between multiple PHP versions in Ubuntu 14.04 LTS or newer
Shell
69
star
3

array_undot

array_undot (the opposite of the array_dot helper function) expands a dot notation array into a full multi-dimensional array.
PHP
16
star
4

RW-File-Cache

🗄️ PHP File-based Caching Library
PHP
15
star
5

php-uk-bank-holidays

🏖️ PHP UK Bank Holidays lets developers easily retrieve UK bank holiday details.
PHP
13
star
6

Improved-Polymorphic-Eloquent-Builder

🔨 Improved Polymorphic Eloquent Builder
PHP
12
star
7

direct-share-buttons

A pure HTML & CSS implementation of interacting with social networks without the need of heavy JavaScript widgets.
CSS
10
star
8

php-countries

🌍 PHP Countries is a library that provides an elegant syntax to country data.
PHP
6
star
9

laravel-dynamic-menu

📃 Laravel Dynamic Menu provides the foundation to build dynamic database powered navigation menus for your web app.
PHP
6
star
10

php-google-oauth-2-handler

🔐 This package provides a handler to ease authentication with Google's OAuth 2 APIs.
PHP
6
star
11

bootstrap-styleguide

🎨 A Bootstrap style guide, aiming to display all the Bootstrap components on a single page, based off of the old Bootstrap 3 Theme Example
HTML
6
star
12

google-contacts-for-wordpress-plugin

👥 Google Contacts for WordPress Plugin
PHP
4
star
13

rw-git-deployment

Rapid Web Git Deployment system
PHP
4
star
14

permissions-editor-ninja-forms-plugin

Set which elements of Ninja Forms different user roles should have access to.
PHP
4
star
15

caching-object-wrapper

🎁 Wraps up any PHP object so all its methods are cached.
PHP
3
star
16

basic-js-cookie-banner

🍪 A basic JavaScript cookie banner (implied consent)
JavaScript
3
star
17

rapid-screensaver

💻 A pure CSS screensaver for our internal status monitor
JavaScript
3
star
18

upfront-child-theme-documentation

📄 WPMU DEV Upfront Child Theme Documentation
2
star
19

php-bucket-testing

🆎 PHP Bucket Testing, A/B testing, split testing
PHP
2
star
20

php-simple-google-maps-api

🗺 This library allows a user to easily communicate with the Google Maps API and retrieve a set of coordinates from an address.
PHP
2
star
21

mobile-checker

📱 A small service for checking if your website is mobile friendly using the Google Pagespeed API
HTML
2
star
22

simple-currency-rates

💱 This package provides simple access to current currency exchange rates.
PHP
2
star
23

backup-deletion

💾 Shell script to identify date named backups and remove them
Shell
2
star
24

amazon-mws-config-generator

Generate configuration files for PHP Amazon MWS library - https://github.com/CPIGroup/phpAmazonMWS
PHP
2
star
25

Search

🔍 Search allows you to easily add an intelligent search engine to your website or web application.
PHP
2
star
26

uxdm

🔀 UXDM helps developers migrate data from one system or format to another.
PHP
2
star
27

rapidwebltd.github.io

🌐 Rapid Web open source mini-site: https://rapidwebltd.github.io
HTML
1
star
28

laravel-5-package-creator

Package creator for Laravel 5 or 5.1
PHP
1
star
29

SimpleMailChimp

🐵 Simple MailChimp API wrapper
PHP
1
star
30

maintenance-page

🛠 A boilerplate that we at Rapid Web for displaying maintenance pages for live uploads, etc.
HTML
1
star
31

RW-File-Cache-PSR-6

🗄 PSR-6 adapter for RW File Cache
PHP
1
star
32

zebra-session-loader

🦓 Automatically start Zebra sessions (database powered sessions)
PHP
1
star
33

gulp-workflow

Our Gulp Workflow repo
1
star
34

amazon-mws-enums

PHP enums for Amazon MWS feeds
PHP
1
star
35

SimpleStripe

💳 SimpleStripe is a really easy way to integrate basic Stripe-powered payments.
PHP
1
star
36

no-post-data-laravel-middleware

No Post Data Laravel Middleware
PHP
1
star
37

php-postcodes

📬 This library handles various UK postcode related tasks
PHP
1
star
38

php-cli-progress-bar

⏱️ Progress bar for command line PHP scripts
PHP
1
star