2012-09-10 8 views
5

से Google स्प्रेडशीट फ़ॉर्म में डेटा सबमिट करें क्या कोई लाइब्रेरी, ब्लॉग पोस्ट इत्यादि है जिसका उपयोग फॉर्म का उपयोग करके Google स्प्रेडशीट में डेटा सबमिट करने के लिए किया जा सकता है?उद्देश्य-सी

मैं शायद एचटीपी पोस्ट सामान लिख सकता हूं लेकिन मैं सोच रहा था कि अगर किसी ने पहले से ऐसा किया है तो मैं इसका उपयोग कर सकता हूं।

यह प्रश्न एंड्रॉइड के लिए this प्रश्न के आईओएस समकक्ष जैसा है।

उत्तर

10

@Saad फारूक के जवाब पर आधारित है, मैं वास्तव में कोड

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    //if there is a connection going on just cancel it. 
    [self.connection cancel]; 

    //initialize new mutable data 
    NSMutableData *data = [[NSMutableData alloc] init]; 
    self.receivedData = data; 

    //initialize url that is going to be fetched. 
    NSURL *url = [NSURL URLWithString:@"https://docs.google.com/forms/d/1yffvViDKq7BHALtC7Om-ceFLWT5hb_cM9sBqndHG3aU/formResponse"]; 

    //initialize a request from url 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[url standardizedURL]]; 

    //set http method 
    [request setHTTPMethod:@"POST"]; 
    //initialize a post data 
    NSString *postData = @"entry.154268020=iOS&entry.940479455=vajhcsd&entry.247556683=BJKSVDB"; 
    //set request content type we MUST set this value. 

    [request setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 

    //set post data of request 
    [request setHTTPBody:[postData dataUsingEncoding:NSUTF8StringEncoding]]; 

    //initialize a connection from request 
    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
    self.connection = connection; 

    //start the connection 
    [connection start]; 






} 

लेखन की कोशिश की और यह वास्तव में काम करता है। आपको @ सैड के ट्यूटोरियल here से यूआरएल आदि निकालने की जरूरत है। बीटीडब्लू, मैं वह था जिसने पिछले लिंक पोस्ट करने का प्रयास किया था। एसओ कर्मचारियों को धन्यवाद, जिन्होंने उन्हें सूचित किया।

+0

अच्छा काम दोस्त !! मुझे यकीन है कि लोगों के लिए अधिक उपयोगी होगा –

+0

अपडेट: शेत्सु (https://sheetsu.com/) नामक एक नई सेवा है जो ठीक है। –

+0

@RobinThuranMalhotra .... कृपया शीट्स उद्देश्य से डेटा को संपादित/संशोधित/हटाने के तरीके प्रदान करें – Priya

3

gdata-objectivec-client है। उनके पास स्प्रेडशीट्स here का उपयोग करने के लिए कुछ उदाहरण कोड है।

+0

मुझे बस इसे आज़माएं और फिर मैं स्वीकार करूंगा ... धन्यवाद –

+0

अभी भी लगता है कि फॉर्म आसान हैं –

4

मैंने पाया डेटा जमा करने की गूगल स्प्रेडशीट फ़ॉर्म विधि बहुत आसान करने के लिए और here के बारे में

आईओएस से एक साधारण HTTP POST तो यह का ख्याल रखता है ब्लॉग।

+0

किसी ने देखा कि लिंक इस पर टूट गया है, शायद आप उसमें विस्तार कर सकते हैं जो इसमें शामिल था? –

+0

@ टोनी होपकिन्सन इसके बारे में क्षमा करें। एक काम करने के लिए अद्यतन लिंक। यह बात बताने के लिए धन्यवाद। मुझे लगा कि उत्तर में जाने के लिए बहुत अधिक डेटा था लेकिन अगर आपको लगता है कि यह अच्छी तरह से फिट हो सकता है तो एक संपादन पोस्ट करने के लिए स्वतंत्र महसूस करें। –

+0

मुझे दोस्त नहीं था, नया SO उपयोगकर्ता टिप्पणी नहीं कर सका इसलिए उन्होंने आपके उत्तर को संपादित करने का प्रयास किया। –

3

मैंने स्विफ्ट का उपयोग करके यह कार्य किया। इस रेपो में इसे देखें: https://github.com/goktugyil/QorumLogs/blob/master/Log%20To%20GoogleDocs.md

यहाँ यह करने के लिए कोड: यह करने के लिए प्रतिबंधित के साथ काम करने के लिए

private static var googleFormLink: String! 
private static var googleFormAppVersionField: String! 
private static var googleFormUserInfoField: String! 
private static var googleFormMethodInfoField: String! 
private static var googleFormErrorTextField: String! 

/// Setup Google Form links 
static func setupOnlineLogs(#formLink: String, versionField: String, userInfoField: String, methodInfoField: String, textField: String) { 
    googleFormLink = formLink 
    googleFormAppVersionField = versionField 
    googleFormUserInfoField = userInfoField 
    googleFormMethodInfoField = methodInfoField 
    googleFormErrorTextField = textField 
} 

private static func sendError(#text: String) { 
    var url = NSURL(string: googleFormLink) 
    var postData = googleFormAppVersionField + "=" + text 
    postData += "&" + googleFormUserInfoField + "=" + "anothertext"     
    postData += "&" + googleFormMethodInfoField + "=" + "anothertext" 
    postData += "&" + googleFormErrorTextField + "=" + "anothertext" 

    var request = NSMutableURLRequest(URL: url!) 
    request.HTTPMethod = "POST" 
    request.setValue("application/x-www-form-urlencoded; charset=utf-8", forHTTPHeaderField: "Content-Type") 
    request.HTTPBody = postData.dataUsingEncoding(NSUTF8StringEncoding) 
    var connection = NSURLConnection(request: request, delegate: nil, startImmediately: true) 
} 
0

https://github.com/goktugyil/QorumLogs

यहाँ यह सेट करने के तरीके के ट्यूटोरियल है कुछ ईमेल पते और उपयोगकर्ता नाम (ईमेल पता) स्वचालित रूप से भेजने के लिए आपको

fbzx fvvफ़ॉर्म में छुपा फ़ील्ड सबमिट करने की आवश्यकता हैdraftResponse pageHistory टोकन (यह नहीं पहुँच टोकन, यह फार्म "टोकन" कहा जाता है में एक छिपा इनपुट, है है जब प्रतिबंधित तरह

NSString *authValue = [NSString stringWithFormat:@"Bearer %@", yourAccessTokenGottenFromGTMOAuth]; 
[request setValue:authValue forHTTPHeaderField:@"Authorization"]; 

कुछ का उपयोग पहुँच टोकन आप इसे काम करने के लिए की जरूरत है ऐसा करने के लिए कुछ ईमेल

उपयोग cocoapods

pod 'GTMOAuth2', '~> 1.1.2' 
pod 'GTMSessionFetcher', '~> 1.1' 

OSX उदाहरण से पता चलता है के रूप में प्रमाणन करना

+०१२३५१६४१०६ (GTMOAuth2 के लिए cocoapod में शामिल है)

आपको पहले एचटीएमएल को फॉर्म एचटीएमएल प्राप्त करना होगा और छिपे हुए इनपुट फ़ील्ड जैसे fbzx और ड्राफ्ट रेस्पॉन्स और टोकन के लिए इसे पार्स करना होगा (एनएसएसकेनर का उपयोग करके इसे पार्स करने का एक अच्छा तरीका है)।

draftResponse = stringGottenFromHTMLGETAndParse & प्रविष्टि:

तो फिर तुम कि है और आप अपनी पहुँच टोकन गूगल प्रमाणन से मिल गया है जब आप एक पोस्ट है कि तरह दिखता है।someNumber = someValue & fbzx = stringGottenFromHTMLGETAndParse2 & fvv = stringGottenFromHTMLGETAndParse3 & pageHistory = stringGottenFromHTMLGETAndParse4 & टोकन = stringGottenFromHTMLGETAndParse5

मैं HTTP पोस्ट के लिए GTMOAuth2 करने के लिए जब रूप में कुछ ईमेल पतों पर सबमिट करने वाले व्यक्तियों को प्रतिबंधित करने के लिए काम करने की जरूरत है, लेकिन जरूरत नहीं थी छुपा इनपुट जैसे ड्राफ्ट रेस्पॉन्स और टोकन।

मुझे HTTP पोस्ट के लिए fbzx जैसे छिपे हुए इनपुट जोड़ने की आवश्यकता होती है जब मेरे पास फॉर्म के साथ उपयोगकर्ता को फ़ॉर्म को स्वचालित रूप से सबमिट करने के लिए फ़ॉर्म पर सक्षम विकल्प था।