如何使用access token在objective-c中使用gdata将视频上载到youtube
这是我的代码,可以将视频成功上传到youtube。它使用用户名和密码,但我将使用访问令牌。非常感谢如何使用access token在objective-c中使用gdata将视频上载到youtube,objective-c,youtube,Objective C,Youtube,这是我的代码,可以将视频成功上传到youtube。它使用用户名和密码,但我将使用访问令牌。非常感谢 GDataServiceGoogleYouTube *service = [self youTubeService]; NSURL *url = [GDataServiceGoogleYouTube youTubeUploadURLForUserID:kGDataServiceDefaultUser
GDataServiceGoogleYouTube *service = [self youTubeService];
NSURL *url = [GDataServiceGoogleYouTube youTubeUploadURLForUserID:kGDataServiceDefaultUser
clientID:@"test"];
NSData *data = [NSData dataWithContentsOfFile:videoPath];
NSString *filename = [videoPath lastPathComponent];
GDataMediaTitle *title = [GDataMediaTitle textConstructWithString:strVideoTitle_];
GDataMediaCategory *category = [GDataMediaCategory mediaCategoryWithString:strCategory_];
[category setScheme:kGDataSchemeYouTubeCategory];
GDataMediaDescription *desc = [GDataMediaDescription textConstructWithString:strVideoDescription];
GDataMediaKeywords *keywords = [GDataMediaKeywords keywordsWithString:strkeyWord_];
GDataYouTubeMediaGroup *mediaGroup = [GDataYouTubeMediaGroup mediaGroup];
[mediaGroup setMediaTitle:title];
[mediaGroup setMediaDescription:desc];
[mediaGroup addMediaCategory:category];
[mediaGroup setMediaKeywords:keywords];
[mediaGroup setIsPrivate:isPrivate_];
NSString *mimeType = [GDataUtilities MIMETypeForFileAtPath:videoPath
defaultMIMEType:@"video/mp4"];
GDataEntryYouTubeUpload *entry;
entry = [GDataEntryYouTubeUpload uploadEntryWithMediaGroup:mediaGroup
data:data
MIMEType:mimeType
slug:filename];
SEL progressSel = @selector(ticket:hasDeliveredByteCount:ofTotalByteCount:);
[service setServiceUploadProgressSelector:progressSel];
gDataServiceTicket_ = [[service fetchEntryByInsertingEntry:entry
forFeedURL:url
delegate:self
didFinishSelector:@selector(uploadTicket:finishedWithEntry:error:)] retain];
谢谢这个话题:http://stackoverflow.com/questions/8228212/gdata-java-client-oauth2-access-token-secret,我通过修改gdata来解决这个问题 首先,在GDataServiceGoogle.m文件中修改requestForURL函数,如下所示:
...
// add the auth token to the header if ([authToken length] > 0)
{
//NSString *value = [NSString stringWithFormat:@"GoogleLogin auth=%@", authToken];
NSString *value = [NSString stringWithFormat:@"Bearer %@", authToken];
[request setValue:value forHTTPHeaderField: @"Authorization"]; }
else if ([authSubToken_ length] > 0)
{ NSString *value = [NSString stringWithFormat:@"AuthSub token=%@", authSubToken_];
[request setValue:value forHTTPHeaderField: @"Authorization"];
}
return request;
其次,在功能YouTube服务中添加:
//[服务设置UserCredentialsWithUsername:StrUserName_uu密码:StrPassword_uu];不再需要了
[service setAuthToken:@my access token]
此外,我使用最新版本的gdata