2012-01-19 11 views
9

जीमेल की एक आसान-कैंडी विंडो है जो आपको अपने सभी संपर्कों को CSV फ़ाइल के रूप में निर्यात करने देती है। आप ऐसा करते हैं तो आपके ब्राउज़र के इतिहास को देखने देता है, तो आप देखते हैं कि डाउनलोड आरंभ करने के लिए इस्तेमाल यूआरएल तरह दिखता है:अनपेक्षित स्क्रिप्ट के माध्यम से जीमेल संपर्क निर्यात करें

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

मैं अजगर में एक बैच स्क्रिप्ट वे अपने आप इस CSV डाउनलोड जाएगा लिखने के लिए चाहते हैं हर रात मेरे सर्वर पर फ़ाइल करें, लेकिन मैं यह नहीं समझ सकता कि "टोक़" कैसे प्राप्त करें। मैंने Google के ओथ में देखा है, लेकिन ऐसा लगता है कि यह एक इंटरेक्टिव प्रक्रिया है, जबकि मुझे यह 3AM पर होने की ज़रूरत है जब सभी उपलब्ध इंसान सो जाएंगे।

क्या यह किया जा सकता है, या क्या Google ने अपना ई-मेल खाता इतना "सुरक्षित" किया है कि मैं इसे बिना किसी स्क्रिप्ट के माध्यम से एक्सेस नहीं कर सकता?

धन्यवाद! Bryon एम इलियट

+0

आप हमेशा सेलेनियम या कुछ के साथ ऐसा कर सकते हैं: प्रोग्रामेटिक रूप से ब्राउज़र विंडो खोलें, जीमेल में साइन इन करें, इत्यादि। – katrielalex

+0

मुझे लगता है कि बैकअप एक ऐसा कर सकता है, इसलिए यह निश्चित रूप से संभव है। – katrielalex

उत्तर

2

मैं कुछ इसी तरह समाधान के लिए देख रहा था और कारण मैं सके किसी भी तैयार समाधान Ive इसे अपने आप को किया लगता है: (कृपया आलसी पटकथा के लिए मेरे साथ सहन, सिर्फ यह काम कर रहा करने के लिए करना चाहता था: डी)

#!/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" 

मदद कर सकता है आप अपने समाधान को पाने के लिए;)

3

सबसे पहले अपने खाते और पासवर्ड से प्रमाणीकृत (http://developers.google.com/accounts/docs/AuthForInstalledApps देखें)

auth=`curl --silent -d [email protected] -d Passwd=yourpwd -d service=contacts https://www.google.com/accounts/ClientLogin|grep ^Auth=|cut -d= -f2` 

रहस्यमय "टोक़" चर प्राप्त करें। मुझे पता चला कि यह एक 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` 

सीएसवी डाउनलोड करें (Google प्रारूप में)। यह ठीक ऐसा करने का मैनुअल तरीके के रूप में एक ही है:

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" 

चर support.google.com/mail/answer/24911?hl=en "बाहर" google_csv, outlook_csv, vCard में से एक हो सकता है। मेरा कोड बैश है, आप कर्ल कमांड को पायथन समकक्ष में बदलना चाहते हैं। महत्वपूर्ण जानकारी चर और यूआरएल हैं।

+0

यह क्यों काम करता है? कृपया बताएं कि आप यहां क्या कर रहे हैं। – rayryeng

+0

पहली पंक्ति आपके खाते और पासवर्ड के साथ प्रमाणीकृत है (https://developers.google.com/accounts/docs/AuthForInstalledApps देखें) दूसरी पंक्ति रहस्यमय "टोक़" चर प्राप्त करने के लिए है। मुझे पता चला कि यह एक JSON अनुरोध का हिस्सा है। अंतिम पंक्ति सीएसवी (Google प्रारूप में) डाउनलोड करना है।यह ऐसा करने के मैन्युअल तरीके के समान ही है: https://support.google.com/mail/answer/24911?hl=hi परिवर्तनीय google_csv, outlook_csv, vcard में से एक हो सकता है। – SoftIce

0

मुझे कुछ भी नहीं मिला, इसलिए मैंने एक लिट टूल बनाया जो ऐसा करता है। आप इसे यहाँ https://github.com/gedl/gc-csv

यह कंसोल के लिए, एक अल्पविराम से अलग फाइल करने के लिए अपने गूगल संपर्कों का निर्यात या एक वीओआइपी फोन (Incom ICW1000G)

मुझे आशा है कि यह मदद करता है करने के लिए इसे अपलोड कर सकते हैं पा सकते हैं।

संबंधित मुद्दे