Google-Contacts | Retreives contatct list | Runtime Evironment library
kandi X-RAY | Google-Contacts Summary
kandi X-RAY | Google-Contacts Summary
Class for Node.js to download google contacts as json.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of Google-Contacts
Google-Contacts Key Features
Google-Contacts Examples and Code Snippets
Community Discussions
Trending Discussions on Google-Contacts
QUESTION
I am new to the Apps script and trying to compare two email lists, emails from google contacts and emails from a google sheet (column B),
I want to delete email/s from Google Contacts that are not listed in the google sheet. I got partial code from here and trying to modify it for my use, however, I stuck in the last part to detect the email that is not in the google sheet and then delete it from google contact. Here is what I could put together, Extracting emails from Google contacts and Google sheet works fine. running the following code does not work, but I don't get any error either.
Edited: I am not sure the first part of the code that extracts data from google contacts is in one array, because each email is printed like this when used console.log: [email1@email.com]
Appreciate your help to make it work.
...ANSWER
Answered 2021-Apr-17 at 21:16Try:
QUESTION
I found the following code as a response to the same question at Check if contact exists under google contacts with "ContactsApp.getContact" but am having some trouble. I am trying to create a Google Script that checks to see if a respondent to a Google Survey already has a contact card in 'System Group: My Contacts' and if not, create a contact card and then add their phone number.
I've updated the following code to reference my fields, but am receiving an error for the line if(emailjson[email.toLowerCase()].id)
- which is meant to check to see if that contact existed:
TypeError: Cannot read property "id" from undefined. (line 36, file "Code")
I thought that there was a problem with the IF statement, but I'm not completely familiar with Javascript (or JSON). As an Excel and Access person I'm accustomed to IF statements having a IF something is null, then do this, which so I tried adding === undefined
, changing the code to if(emailjson[email.toLowerCase()].id === undefined)
but that didn't solve the problem. In looking at the Execution Transcript, it hangs up as soon as it hits someone who doesn't have a contact card.
If I remove new contacts from the beginning of my spreadsheet and go back to the original code (without === undefined
), then it creates duplicate contact cards for everyone who already had a card to start with until it reaches the next person who is new, and then it errors out again.
For the people who already have contact cards, I've also received an error on the next line if the phone number in the spreadsheet is just numbers, if(!emailjson[email.toLowerCase()]['phones'][phone.replace(/[_)(\s.-]/g,'')]) {
.
TypeError: Cannot find function replace in object 2024313437. (line 37, file "Code")
If I add formatting to the phone number, then it doesn't throw an error (although as I mentioned before, it creates a duplicate contact). Oddly, I I run the function emailsasJSON afterwards, it only shows one contact card as opposed to a duplicate card, even though on the Google Contacts screen I see a contact card for every time I've attempted to run the script.
Thanks in advance for your thoughts.
...ANSWER
Answered 2020-Dec-17 at 19:24Your main issue is that your function emailsasJSON()
stringified the json object (i.e it was a string) and therefore you could not access successfully the key pair values of the JSON object. To solve this I just parsed the object to make sure it was consistent but as long as you wouldn't have converted it into a string it would have been ok.
The next change is in the first if condition. You don't actually need to check for the id to see if the element exists as just by checking the element itself would do the job (although checking the id would work too).
Finally the way you constructed your json object for the new contact was not done correctly so I have corrected it accordingly to add the appropriate key value pairs.
QUESTION
How to use vue-router with using that predefined template:
https://vuetifyjs.com/examples/layouts/google-contacts
I have added a link in my items object
...ANSWER
Answered 2017-Dec-02 at 08:00v-list-tile
, v-btn
, and v-card
all extend router-link
, so you can use any of the router-link
attributes directly on those components instead.
In your case you can just use
QUESTION
I want to get the contacts using the google contacts api in nodejs, but there isn't any quickstart on the developer.google page for nodejs. I have found this wrapper on github https://github.com/hamdipro/google-contacts-api but I don't understand it and I don't know how to use it.
Can anyone tell me what can I do?
...ANSWER
Answered 2018-Jan-13 at 18:32First thing instead of going with non-official package mentioned in question you should prefer using official package as they are well maintained, every under the hood changes are handled properly and also issues created are taken into considerations.
Official package for same is here.
Now steps to use above package to get contacts of a user :-
- Include googleapis using
npm install googleapis --save
Create a service client
var google = require('googleapis');
var contacts = google.people('v1');
Authorise client to make request {Link for authentication docs}
Making authenticated requests
contacts.people.connections.list({ auth: oauth2Client //authetication object generated in step-3 }, function (err, response) { // handle err and response });
That should be enough to get user's contact data. Also for authentication if you are using this for domain apart from gmail and have admin access you can get all user's contacts using domain wide delegation otherwise you will have to manually allow access for each user.
Hope it helps. Let me know in comments if have any queries.
QUESTION
Vuetify has a pretty flexible layout scheme encompassing a menu, toolbar, content, and footer, that allows some nice-looking material design schemes, e.g. Google Contacts:
Consider a standard setup with the layout being controlled by the router, with a fixed menu across the site, but a dynamic toolbar that changes with the page shown. What's the best practice for changing the content of the toolbar depending on what page is shown? In the Google Contacts example, we only want the search bar to show up on the Contacts
page.
Based on my rudimentary knowledge of Vue, it seems like defining a router layout with a scoped slot. There are likely a lot of other hacky ways to achieve this. But I'm looking for a clean, modular way to define toolbar content across pages.
Ideas:
As of a while ago vue-router didn't support named slots. But this seems to have changed recently, although there is no documentation.
Named views seem to be a nice way to support tie the toolbar content to the main page with vue-router. But there doesn't seem to be a good way for the toolbar to 'talk' to the main page as there would be with a slot.
ANSWER
Answered 2019-Apr-09 at 07:01You can define multiple router views in your application. Imagine your layout looks extremely simplified like this:
QUESTION
I would like to develop a "Add to contacts" button for a webpage, much like the "add to calendar - Google, ICal, Outlook" type buttons that you see on webinar and event pages like this one.
I started investigating Google Contacts, as I use that. I started building a form to submit an application/atom+xml to the URL they talk about in the help files here and a similar question for Google on Stack.
I figure creating this is a Open Source like service to the community, some expert help would be appreciated as I tinker with it. I am asking here for that contribution.
My rough code, that isn't working
...ANSWER
Answered 2019-Feb-01 at 03:26The proof is in the pudding so before you torture yourself reading this long post: Create Contacts Test Site got it working :) If you have the webtool's console open you can see we get back the contact Person resource, and Elizabeth Bennet will now be in your contacts!
Oh by the way when authenticating as the user google will complain about it not being safe both on my little website and your local version, just click advanced and continue. ( Google will do this until you submit your OAuth for verification by their team so good on a final product but... )
So in the google help docs at the very top we see this:
Note: For read and write access to users' contacts, use the People API, which provides both contact and profile information using JSON instead of the older GData protocol.
So it really seems like the correct answer here is to move to the People API. I spent some time looking into it and have a cursory answer for you.
I found this example page which works out the majority of what you want. If you follow it exactly you will get a local version working in javascript connecting to their api which does allow us to createContacts.
We have to setup an api app within google's api to essentially authenticate this process.
Once we do that we can setup buttons that request for the user to accept authentication ( allow us to create a contact for them ).
The fun is changing their code, which simply puts out the top 10 users for the user on the page into creating the contact.
There does appear ways to perhaps do it straight with a regular http request after you have gotten the user's permission but I found it quicker to work with their crazy api setup.
We need to know how to setup the gapi.client.people.people.createContact
api call and it takes a Person resource. That resource is handy to click around on to see how we can setup the person resource categories.
Here is where we can play with the api before we attempt to put it on our webpage. In the right panel there is a headline of:
Try this API
Right next to it there is a little box which expands the area so we can more easily play with the api. There is a JavaScript option in the top right of that to give an attempted look at the JavaScript equivalent of the request we are doing.
On the left we have the request body which lets us put in the details to our createContacts api request. So for your example if you put in:
QUESTION
In the hunt to list all (to include Other
) Contacts for a Gmail/GSuite user. The current People API
does not support this functionality, noting the following threads:
- Found this thread here, confirming such change in the API: Google Contacts API vs People API
- Google team noting it here: https://groups.google.com/forum/#!topic/google-contacts-api/iLsrN23xF6g
- Referencing ticket request for prioritization here: https://issuetracker.google.com/issues/36757468
When diving deeper, it seems the Contacts API is still functioning and can be used via gdata
https://developers.google.com/contacts/v3/
However, based on the following repo (https://github.com/google/gdata-python-client), there's limited documentation on implementation using OAuth2 (userID
, token
, refreshToken
), which is the current stumbling block to get the list of Other Contacts
Any help would be greatly appreciated, thanks!
...ANSWER
Answered 2019-Jan-31 at 21:47I found this posting https://gist.github.com/jorilallo/3686737 from 7 years ago(?). The actual sample code below that I had to modify a bit to get it working:
QUESTION
Google Contacts now (Jan 2019) issues a long (19 digit) decimal number id for each contact that you create.
Unfortunately, as discussed in this question the ID cannot be put into a URL to view the contact easily, however if you convert this decimal number to Hex it can be put into the URL.
So the question is, how to convert c2913347583522826972 to 286E4A310F1EEADC
When I use the Decimal to Hex converter here it gives me 286E4A310F1EEADC if I drop the c (2nd function below is a version of the sites code, but it does use PHP too maybe)
However trying the following functions in Javascript give me mixed results
The first one is from this stack question which is the closest, just 2 digits off
...ANSWER
Answered 2019-Jan-30 at 16:57It seems like the limit of digit size. You have to use arrays if you need to convert bigger digits.
You can use hex2dec npm package to convert between hex and dec.
QUESTION
I am working in an Angular app, I want to add Gmail in this Angular app.
I have followed this tutorial https://medium.com/@mcflyDev/angular-2-or-4-import-google-contacts-d0ffb13d8626
everything is working fine and I am getting the success response with access_token
but I am not getting authorization_code
.
How can I get authorization_code
?
Here is my configuration:
...ANSWER
Answered 2018-Nov-13 at 09:44I got the solution. Earlier I was making a POST
Ajax call but that was not required.
We just need to do a small setup in 2 steps:
Step 1. Prepare a URL:
The URL should look like this:
QUESTION
I struggle to understand the component and template system in VueJS. I downloaded the VuetifyJS PWA example template and tried to replace the complete content of Hello.vue with the content of the VuetifyJS google-contacts.vue example template.
I got this error message after npm run dev
on localhost:8080
:
ANSWER
Answered 2017-Dec-26 at 22:06I just followed the process and it works ok for me, so I'm guessing it's most likely a miss-step in your build, but so far can't reproduce it.
Note, it looks like docs/examples/layouts/google-contacts.vue is a replacement for the overall page layout rather than an individual component (thinking along the lines @B.Fleming mentions in comments), so it's more appropriate to replace App.vue
than Hello.vue
.
This is what I originally did (not reading your post thoroughly). But subsequently replacing Hello.vue
gives me the same working Google Contacts page.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install Google-Contacts
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page