youtube apiのサンプルコードを使用して動画をアップロードしようとしています。 アップロードボタンを押すとプログレスバーが終了しますが、一度終了するとエラーが発生します。YouTube API認証 - Iphone
YouTubeTest [2149:F803以下のようにエラーの説明である。エラー - エラーを ドメイン= com.google.GDataServiceDomainコード= 400「操作が が完了できなかった(com.google.GDataServiceDomainエラー400 。)」 のUserInfo = 0x69d5bd0 {}
これは、アップロードボタンのコードで、私はAPIから正しく開発者キーとクライアントキーを設定している
- (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];
}
を押しますダッシュボード。
私はこれをシミュレータで実行しています。私たちはシミュレータからビデオをアップロードできないのですか?
私は間違っていますか?
400エラーは、通常、不正なリクエストを意味します。私はすべてのコード、ログイン認証、可能であれば、シミュレータが引き起こしている可能性のある問題を排除するためにデバイスをテストします。 – Luke
@ルーク私はそれもデバイスでチェックしました。同じエラーが表示される:( – innodeasapps
サンプルコードやリンクがありましたら、share.IにはMAC OS X用のサンプルがありますが、iOS用のボットはありますか? – Imran