2012-06-11 19 views
7

मैं यूट्यूब एपीआई के नमूना कोड का उपयोग कर वीडियो अपलोड करने की कोशिश कर रहा हूं। जब मैं अपलोड बटन दबाता हूं, प्रगति पट्टी अपनी प्रक्रिया को समाप्त करती है, लेकिन एक बार जब यह बिंदु के अंत तक पहुंच जाती है तो मुझे त्रुटि मिलती है।यूट्यूब एपीआई प्रमाणीकरण - आईफोन

YouTubeTest [2149: f803] त्रुटि विवरण इस प्रकार है। त्रुटि - त्रुटि डोमेन = com.google.GDataServiceDomain कोड = 400 "आपरेशन पूरी नहीं हो सकी (com.google.GDataServiceDomain त्रुटि 400 ।) " UserInfo = 0x69d5bd0 {}

यह अपलोड बटन के लिए कोड दबाया

- (IBAction)uploadPressed:(id)sender { 
    [self.view resignFirstResponder]; 
    NSString *devKey = [mDeveloperKeyField text]; 

    GDataServiceGoogleYouTube *service = [self youTubeService]; 
    [service setYouTubeDeveloperKey:devKey]; 

    NSString *username = [mUsernameField text]; 
    NSString *clientID = [mClientIDField text]; 

    NSURL *url = [GDataServiceGoogleYouTube youTubeUploadURLForUserID:username 
                  clientID:clientID]; 

    // load the file data 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"YouTubeTest" ofType:@"m4v"]; 
    NSData *data = [NSData dataWithContentsOfFile:path]; 
    NSString *filename = [path lastPathComponent]; 

    // gather all the metadata needed for the mediaGroup 
    NSString *titleStr = [mTitleField text]; 
    GDataMediaTitle *title = [GDataMediaTitle textConstructWithString:titleStr]; 

    NSString *categoryStr = [mCategoryField text]; 
    GDataMediaCategory *category = [GDataMediaCategory mediaCategoryWithString:categoryStr]; 
    [category setScheme:kGDataSchemeYouTubeCategory]; 

    NSString *descStr = [mDescriptionField text]; 
    GDataMediaDescription *desc = [GDataMediaDescription textConstructWithString:descStr]; 

    NSString *keywordsStr = [mKeywordsField text]; 
    GDataMediaKeywords *keywords = [GDataMediaKeywords keywordsWithString:keywordsStr]; 

    BOOL isPrivate = mIsPrivate; 

    GDataYouTubeMediaGroup *mediaGroup = [GDataYouTubeMediaGroup mediaGroup]; 
    [mediaGroup setMediaTitle:title]; 
    [mediaGroup setMediaDescription:desc]; 
    [mediaGroup addMediaCategory:category]; 
    [mediaGroup setMediaKeywords:keywords]; 
    [mediaGroup setIsPrivate:isPrivate]; 

    NSString *mimeType = [GDataUtilities MIMETypeForFileAtPath:path 
               defaultMIMEType:@"video/mp4"]; 

    // create the upload entry with the mediaGroup and the file data 
    GDataEntryYouTubeUpload *entry; 
    entry = [GDataEntryYouTubeUpload uploadEntryWithMediaGroup:mediaGroup 
                  data:data 
                 MIMEType:mimeType 
                  slug:filename]; 

    SEL progressSel = @selector(ticket:hasDeliveredByteCount:ofTotalByteCount:); 
    [service setServiceUploadProgressSelector:progressSel]; 

    GDataServiceTicket *ticket; 
    ticket = [service fetchEntryByInsertingEntry:entry 
             forFeedURL:url 
             delegate:self 
           didFinishSelector:@selector(uploadTicket:finishedWithEntry:error:)]; 

    [self setUploadTicket:ticket]; 

} 

मैं एपीआई से सही ढंग से डेवलपर कुंजी और क्लाइंट कुंजी की स्थापना की है है डैशबोर्ड।

मैं इसे सिम्युलेटर पर चला रहा हूं। क्या हम सिम्युलेटर से वीडियो अपलोड नहीं कर सकते हैं?

कृपया मुझे मार्गदर्शन करें कि मैं कहां गलत हूं?

+0

एक 400 त्रुटि आमतौर पर खराब अनुरोध का मतलब है। मैं आपके सभी कोड, लॉगिन प्रमाणीकरण और यदि संभव हो, तो जांच करूँगा, सिम्युलेटर के कारण होने वाले संभावित मुद्दों को रद्द करने के लिए डिवाइस पर परीक्षण करें। – Luke

+0

@ ल्यूक मैंने इसे डिवाइस पर भी चेक किया। यह वहां काम नहीं कर रहा है .. एक ही त्रुटि दे रहा है :( – innodeasapps

+0

क्या आपके पास कोई नमूना कोड या लिंक है, तो कृपया साझा करें। मुझे मैक ओएस एक्स के लिए नमूने मिल गए हैं लेकिन आईओएस के लिए बॉट। – Imran

उत्तर

3

त्रुटि हल ... YouTube पर वीडियो अपलोड करने के लिए Google खाते का उपयोग करते हैं, तो GData ऑब्जेक्टिव-सी के कुछ कार्यों पैरामीटर के रूप में जीमेल खाते की आवश्यकता होती है और कुछ यूट्यूब पैरामीटर के रूप में जुड़े खाते की आवश्यकता है।

जब आप '- (शून्य) setUserCredentialsWithUsername: (NSString *) उपयोगकर्ता नाम पासवर्ड (NSString *) पासवर्ड कहते हैं;' GDataServiceBase में, उपयोगकर्ता नाम जीमेल खाता होना चाहिए, उदाहरण के लिए 'x ... @ gmail.com' और पासवर्ड जीमेल खाता का पासवर्ड होना चाहिए।

लेकिन जब आप '+ (NSURL *) को कॉल करते हैं तो youTubeUploadURLForUserID: (NSString *) उपयोगकर्ता आईडी क्लाइंट आईडी: (NSString *) क्लाइंट आईडी;' GDataServiceGoogleYouTube में, उपयोगकर्ता आईडी पैरामीटर यूट्यूब लिंक खाता होना चाहिए और पासवर्ड जीमेल खाते का पासवर्ड होना चाहिए।

मैं लॉग इन करने के लिए [email protected] का उपयोग कर रहा था, जहां मैं लॉग इन करने के लिए अभी ईमेल_आईडी का उपयोग कर रहा हूं। क्या एक मूर्ख त्रुटि है! लेकिन मुझे हल करने के लिए 2 पूर्ण दिन लगे .. दुहह .. !!

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