1.0.7 • Published 4 years ago

google-contacts-crud v1.0.7

Weekly downloads
47
License
ISC
Repository
github
Last release
4 years ago

Description

Node.js wrapper for the Google Contacts API.

We can perfrom CRUD on Google Contacts

  • C : addContacts // single contacts at a time
  • R : getContacts // all or with filters
  • U : updateContacts // single contact update at a time
  • D : deteteContacts // mulitple delete with contact_ids and with filter single delete

Example Project.

Requirements

Installation

npm install google-contacts-crud

Examples

  • Set user's credentials.
var GoogleContacts = require("google-contacts-crud");



var googleContacts = new GoogleContacts(CLIENT_ID, CLIENT_SECRET);
var credentials    = {
  access_token : "youraccesstoken",
  expiry_date  : 3600,               
  refresh_token: "yourrefresh_token",
  token_type   : "Bearer"
};



googleContacts.setUserCredentials(credentials);

How to get CLIENT_ID and CLIENT_SECRET Steps

  • Create A Google Project.
  • Enable Google Contact Api (enable apis and services -> select Google Contact Api -> enable)
  • Create CLIENT_ID and CLIENT_SECRET (Create Credentials -> OAuth Client ID -> Web Application) Enter App Name Authorized JavaScript origins (your website name ) * Authorized redirect URIs (redirect URL, if you don't have, use 'https://developers.google.com/oauthplayground')

You get a initials access_token Steps

** Note Access Token will get expire after 3600 secs To Check your Access Token Status

Create Google Project OAuth Background for Access Token

  • Fetch all the contact's info such as 'name', 'email id', 'contact id',phoneNumber ,'contact type', shortmetadata and fullmetadata.

we can use fullmetadata to get additional information about a contact

For more info about query_params

// read

googleContacts.getContacts(function (error,contact) {
  console.log(error)
  console.log(contact)
});

// pass filter object
// filter based on {name,email,phoneNumber,other,contact_id} use any one
// filter

googleContacts.getContacts({"email":"ritesh@gmail.com"},function (error,contact) {
  console.log(error)
  console.log(contact.length)
});
  • Add a new contact into user's Google contacts.
// create

var count=0;
  var createData = {
      name :'Ritesh Vishwakarma', // Default is ''
      display_name: 'Ritesh Raj Vishwakarma',  // Default is ''
      email       : 'ritesh@gmail.com',
      is_primary  : true,                     // Default is true
      contact_type: 'other',                  // Default is other.
      phoneNumber: '9876543210',                  // Default is other.
      headers     :{
          'GData-Version': '3.0',
          'User-Agent'   : 'SomeAgent'
      },
      extended_property: [                    // Optional
          {name: 'custom_key_2', value: 'custom_value_2'},
          {name: 'custom_key_2', value: 'custom_value_2'}
      ]
  };

googleContacts.addContact(createData, function (error,contact) {
  console.log(error)
  console.log(contact)
});

response contact
/*
{ contacts:
   [ { name: 'Ritesh Vishwakarma',
       email: 'ritesh@gmail.com',
       contact_type: 'other',
       id: '68eaba200b442ca7',
       phoneNumber: '9876543210',
       etag: '"Q3o4fjVSLit7I2A9XBZaGE0ORgA."',
       display_name: 'Ritesh Raj Vishwakarma',
       shortmetadata: [Object],
       fullmetadata: [Object] } ],
  next: null }
*/
  • Update a contact or a list of contacts from user's Google contacts list.
// single update with filter
  var updateData = {
      email       : 'riteshvish@gmail.com',
      phoneNumber: '4321043210',        
      headers     :{
          'GData-Version': '3.0',
          'User-Agent'   : 'SomeAgent'
      }
  };
// pass filter object
// filter based on {name,email,phoneNumber,other,contact_id} use any one
// filter
// updates only first records
googleContacts.updateContacts({email:"ritesh@gmail.com"},updateData,function (error, data) {
    console.log(error);
    console.log("Data " + JSON.stringify(data));
});

googleContacts.updateContacts({phoneNumber:"9876543210"},updateData,function (error, data) {
    console.log(error);
    console.log("Data " + JSON.stringify(data));
});
  • Delete a contact or a list of contacts from user's Google contacts list.
// single delete with filter
googleContacts.deleteContacts({phoneNumber:"4321043210"},function (error, data) {
    console.log("error",error);
    console.log("Data " + data);
});
var contact_ids=[
  '3e8b42898e977d',
  '305417c8c7e99a1',
  '6801c200cab6b86',
  '85924740a074822',
  '8e103600a8c2c97'
]
// multiple delete using contact_ids we will get id from getContacts
googleContacts.deleteContacts({contact_ids:contact_ids},function (error, data) {
    console.log("error",error);
    console.log("Data " + data);
});
  • To Refresh Google Access Token.
googleContacts.refreshToken(function(err,token){
  console.log("error",error);
  console.log("Data " + token);
})
response data

{ accessToken:"new access token",
  expiresIn: 3600,
  expiresAt: 1509790743244,
  idToken: undefined
}

If you find any error or you facing any difficulty please create an issue.