Экспорт GMail контактов через автоматический скрипт - PullRequest
10 голосов
/ 19 января 2012

GMail имеет удобное окно, которое позволяет вам экспортировать все ваши контакты в виде файла CSV.Если вы сделаете это, то посмотрите историю своего браузера и увидите, что URL-адрес, используемый для запуска загрузки, выглядит примерно так:

https://mail.google.com/mail/c/data/export?exportType=GROUP&groupToExport=%5EMine&out=GMAIL_CSV&tok=rQt5BTUBABA.N0gr2-zKkG9868fM7tF_FQ.fOgeVayblkGavK2AuFjZ2t

Я хотел бы написать пакетный скрипт на Pythonэто автоматически загружает этот CSV-файл каждую ночь на мой сервер, но я не могу понять, как получить «ток».Я изучил OAuth от Google, но, похоже, это интерактивный процесс, в то время как мне нужно, чтобы это произошло в 3 часа ночи, когда все доступные люди будут спать.

Может ли это быть сделано, или Google сделалмоя учетная запись электронной почты настолько "безопасна", что я не могу получить к ней доступ через автоматический скрипт?

Спасибо!Брайон М. Эллиотт

Ответы [ 4 ]

3 голосов
/ 11 августа 2014

Сначала выполните аутентификацию, используя свою учетную запись и пароль (см. http://developers.google.com/accounts/docs/AuthForInstalledApps)

auth=`curl --silent -d Email=whatever@gmail.com -d Passwd=yourpwd -d service=contacts https://www.google.com/accounts/ClientLogin|grep ^Auth=|cut -d= -f2`

Получите переменную myserious "tok". Я обнаружил, что это часть запроса JSON:

tok=`curl --silent --header "Authorization: GoogleLogin auth=$auth" "https://www.google.com/s2/gastatus?out=js&rc=0" |sed 's/,/\n/g' |grep AuthToken |cut -d'"' -f6`

Загрузите CSV (в формате Google). Это аналогично ручному способу сделать это: support.google.com/mail/answer/24911?hl=en

curl -s --stderr - -L -o contacts-google-whatever\@gmail.com-$(date +%Y-%m-%d-%H.%M.%S).csv -H "Authorization:GoogleLogin auth=$auth" --insecure "https://www.google.com/s2/data/exportquery?ac=false&cr=true&ct=true&df=true&ev=true&f=g2&gids=6&gp=true&hl=en-US&id=personal&max=-1&nge=true&out=google_csv&sf=display&sgids=6%2Cd%2Ce%2Cf%2C17&st=0&tok=$tok&type=4"

Переменная"out" может быть одним из google_csv, outlook_csv, vcard. Мой код bash, вы можете изменить команды curl на эквивалент Python. Важной информацией являются переменные и URL-адреса.

2 голосов
/ 07 ноября 2012

Я искал какое-то похожее решение, и потому не смог найти ни одного готового решения, я сделал это сам: (Пожалуйста, потерпите меня из-за ленивых скриптов, просто хотел, чтобы оно заработало: 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"

может помочь вам найти решение;)

0 голосов
/ 21 мая 2016

Я не смог ничего найти, поэтому я создал маленький инструмент, который делает это.Вы можете найти его здесь https://github.com/gedl/gc-csv

Он может экспортировать ваши контакты Google в файл, разделенный запятыми, на консоль или загрузить его на VOIP-телефон (Incom ICW1000G)

Надеюсь, это поможет.

0 голосов
/ 19 января 2012

Попробуйте посмотреть на gmail api: http://code.google.com/apis/gmail/oauth/code.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...