10
votes

Exporter des contacts Gmail via un script sans assistance

Gmail possède une fenêtre à portée de main qui vous permet d'exporter tous vos contacts en tant que fichier CSV. Si vous faites cela, regardez l'histoire de votre navigateur, vous voyez que l'URL utilisée pour initier le téléchargement semble quelque chose comme:

https : //mail.google.com/mail/c/data/export? ExportType = Groupe & GraisstoExport =% 5EMINE & OUT = gmail_csv & tok = rqt5btubaba.n0gr2-zkkg9868fm7tf_fq.fogevayblkgavk2aufjz2t

Je voudrais écrire un script de lot dans Python qui téléchargera automatiquement ce fichier CSV tous les soirs sur mon serveur, mais je ne peux pas comprendre comment obtenir la "Tok". J'ai examiné Google's Oauth, mais cela semble être un processus interactif humain, alors que j'en ai besoin pour arriver à 3 heures du matin lorsque tous les humains disponibles seront endormis.

peut-il être fait ou google a formulé mon compte e-mail afin de "sécuriser" que je ne peux pas y accéder via un script sans assistance?

Merci! Bryon M. Elliott


2 commentaires

Vous pouvez toujours le faire avec sélénium ou quelque chose: ouvrez par programmation une fenêtre de navigateur, connectez-vous à Gmail, etc., etc.


Je pense aussi que la sauvegarde peut faire cela, donc c'est certainement possible.


4 Réponses :


0
votes

1 commentaires

Bonne pensée, mais le jeton Oauth revint par xoauthuth.py ne fonctionne pas.



2
votes

Je cherchais une solution similaire et que je ne pouvais pas trouver une solution prête que je l'ai fait moi-même: (PLS supporte-moi avec moi pour les scripts paresseux, je voulais juste le faire fonctionner: D)

#!/bin/sh 
# google api requirements:
# https://developers.google.com/gdata/articles/using_cURL
# https://developers.google.com/gdata/faq#clientlogin
# https://developers.google.com/google-apps/contacts/v3/
# https://developers.google.com/google-apps/contacts/v3/reference
# json parser:
# https://github.com/dominictarr/JSON.sh#jsonsh
# recommendation(optional):
# https://developers.google.com/accounts/docs/OAuth2UserAgent

# echo "logging in to google and saving contact with given caller-number."
Auth=$(curl --silent https://www.google.com/accounts/ClientLogin --data-urlencode Email=${Email} --data-urlencode Passwd=${Passwd} -d accountType=GOOGLE -d source=Google cURL-Example -d service=cp | grep Auth | cut -d= -f2)
curl -o ${dir}/${tmpfile} --silent --header "Authorization: GoogleLogin auth=$Auth" "https://www.google.com/m8/feeds/contacts/$Email/full?v=3.0&q=$2&alt=$Format"


2 commentaires

semble intéressant. Pouvez-vous ajouter quelques exemples concernant les variables que vous utilisez?


@jerik: En raison des aspects de sécurité, la connexion via l'utilisateur et le mot de passe ne sont plus pris en charge. Vous devez utiliser Un mot de passe de l'application ou Oauth .



4
votes

Premier authentifier avec votre compte et votre mot de passe (voir http://developers.google.com/Accounts / Docs / AutorforInstalledapps ) XXX

Obtenez la variable de "TOK" myséreuse. J'ai découvert que cela fait partie d'une demande JSON: xxx

téléchargez le CSV (au format Google). C'est exactement la même chose que la façon manuelle de faire ceci: support.google.com/mail/answer/24911?hl=froke/244911?hl=froke/24/24911?hl=froke/24/24911?hl=froke/24911?hl=frecked/24911?hl=fr.comxxx

La variable "Out" peut être Un de Google_CSV, Outlook_CSV, VCARD. Mon code est bash, vous voudrez peut-être modifier les commandes CURL en équivalent Python. Les informations importantes sont les variables et les URL.


1 commentaires

La première ligne est d'authentifier avec votre compte et votre mot de passe (voir développeurs.google.com/Accounts/docs/ AutorInstalledapps ) Deuxième ligne consiste à obtenir la variable de "tok" myséreuse. J'ai découvert que cela fait partie d'une demande JSON. La dernière ligne est de télécharger le CSV (au format Google). C'est exactement la même chose que la façon manuelle de faire cela: support.google.com / Mail / Réponse / 24911? HL = EN Variable Out peut être l'un des Google_CSV, Outlook_CSV, VCard.



0
votes

Je n'ai pu trouver rien, donc j'ai construit un outil Litte qui fait cela. Vous pouvez le trouver ici https://github.com/gedl/gc-csv

Il peut exporter vos contacts Google vers un fichier séparé des virgules, sur la console ou le télécharger sur un téléphone VoIP (Incom ICW1000G)

J'espère que ça vous aide.


0 commentaires