2010-08-09 15 views
5

मैंने Google वर्कशीट को डेटाटेबल में उपयोगकर्ता नाम, पासवर्ड, स्प्रेडशीट नाम और वर्कशीट नाम दिए जाने के लिए Google डॉक्स .NET API का उपयोग करके एक सी # प्रोग्राम लिखा है। यह सब ठीक काम करता है, लेकिन प्रोग्रामिंग मॉडल स्प्रेडशीट सेवा क्रेडेंशियल्स का एक सेट दे रही है, और फिर जिसके परिणामस्वरूप फ़ीड नीचे कतरन किसी विशिष्ट स्प्रैडशीट/कार्यपत्रक पाने के लिए चारों ओर घूमना करने लगता है, यानीमैं Google डॉक्स सी # एपीआई के साथ सार्वजनिक स्प्रेडशीट तक कैसे पहुंच सकता हूं?

अब मुझे इसमें रुचि है सार्वजनिक Google स्प्रेडशीट से पढ़ने के लिए मेरे प्रोग्राम की कार्यक्षमता को विस्तारित करने में। यही है, सार्वजनिक Google स्प्रेडशीट का URL (उदा। "https://spreadsheets.google.com/ccc?key=BUNCH_OF_LETTERS_HERE&hl=en"), मैं उस दस्तावेज़ से संबंधित स्प्रेडशीट एंटर्री ऑब्जेक्ट प्राप्त करना चाहता हूं।

विधि मैं अब तक स्पष्ट रूप से उपयोग कर रहे हैं यह अनुमति देने के लिए विस्तार करने के लिए प्रतीत नहीं होता है, इसलिए यदि किसी को भी उनके एपीआई के माध्यम से एक सार्वजनिक Google दस्तावेज़ तक पहुंचने का उचित तरीके से जानता है कि मैं सोच रहा था?

उत्तर

4

आप बस सार्वजनिक पृष्ठ पुनर्प्राप्त कर सकते हैं और फिर पंक्तियों के लिए HTML स्रोत का विश्लेषण कर सकते हैं।

अनुरोध हेडर:

GET https://docs.google.com/spreadsheet/ccc?key=0Au1XehjMeFfYdEE2d0RDSk1FMEMtRjM0MmllUWdoTkE HTTP/1.1 
Host: docs.google.com 
Connection: keep-alive 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko)  Chrome/15.0.874.120 Safari/535.2 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.6,en;q=0.4 
Accept-Charset: ISO-8859-9,utf-8;q=0.7,*;q=0.3 
Cookie: PREF=ID=68126eb9eb12adef:FF=0:TM=1331371284:LM=1331371284:S=Bkm9mYX8pYy9a4h9 

स्प्रेडशीट ग्रिड - स्तंभ लेबल:

<table class="waffle" cellspacing="0" cellpadding="0"> 

<thead><tr> 
<th class="row-header freezebar-top-left"></th> 
<th style="width:120px" class="column-headers-background">A</th> 
<th style="width:120px" class="column-headers-background">B</th> 
<th style="width:120px" class="column-headers-background">C</th> 
</tr></thead> 

<tbody> 

पहली पंक्ति उपयोगकर्ता परिभाषित स्तंभ नाम के रूप में:

<tr style='height:16px;'> 
<th style="height: 16px;" class="row-headers-background"><div class="row-header-wrapper" style="height: 16px;">1</div></th> 

<td class="g-0-GjugEgs0" dir="auto-ltr">username</td> 
<td class="g-0-GjugEgs0" dir="auto-ltr">create</td> 
<td class="g-0-GjugEgs0" dir="auto-ltr">expire</td> 
</tr> 

उपयोगकर्ता डेटा के रूप में पंक्तियों की बाकी: पंक्ति संख्या:

<tr style='height:16px;'> 
<th style="height: 16px;" class="row-headers-background"><div class="row-header-wrapper" style="height: 16px;">2</div></th> 

पंक्ति डेटा कोशिकाओं:

<td class="g-0-GjugEgs2">3600001</td> 
<td class="g-0-GjugEgs2">2012</td> 
<td class="g-0-GjugEgs2">2013</td> 
</tr> 

आप Html Agility Pack इस्तेमाल कर सकते हैं या अपने खुद के पार्सर।

GET https://docs.google.com/spreadsheet/fm?id=tA6wDCJME0C-F342ieQghNA.PREF_08255578241116458508.3736592253424693644&fmcmd=23&gid=0 HTTP/1.1 
Host: docs.google.com 
Connection: keep-alive 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Referer: https://docs.google.com/spreadsheet/ccc?key=0Au1XehjMeFfYdEE2d0RDSk1FMEMtRjM0MmllUWdoTkE 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.6,en;q=0.4 
Accept-Charset: ISO-8859-9,utf-8;q=0.7,*;q=0.3 
Cookie: PREF=ID=68126eb9eb12adef:FF=0:TM=1331371284:LM=1331371284:S=Bkm9mYX8pYy9a4h9; lbcs=0 

सूचना आईडी पैरामीटर:

एक अन्य विकल्प सीएसवी में फ़ाइल या पाठ स्वरूप

फ़ाइल डाउनलोड अनुरोध हेडर के रूप में सार्वजनिक स्प्रेडशीट डाउनलोड कर रहा है। आप नीचे दिए गए जैसे html स्रोत से यह निकालने के लिए है:

... 
var mergedConfig = {"formToken":"Kg2uOS1UniIe0yFks5zcDZDsGQ=","formStatus":false,"id":"tA6wDCJME0C-F342ieQghNA.PREF_08255578241116458508.3736592253424693644", 
... 

मैं Fiddler उपयोग किया गया SSL एन्क्रिप्ट किए गए संदेशों सहित संचार कब्जा करने के लिए।

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