gpt4 book ai didi

objective-c - 如何使用访问 token 在Objective-C中使用gdata将视频上传到youtube

转载 作者:行者123 更新时间:2023-12-03 05:42:48 24 4
gpt4 key购买 nike

这是我的代码,可以成功将视频上传到youtube。它使用的是用户名和密码,但是我将使用访问 token 。非常感谢。

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;

其次,在功能youTubeService中添加了:

// [service setUserCredentialsWithUsername:StrUserName_ password:StrPassword_];不再需要

[service setAuthToken:@“我的访问 token ”];

此外,我使用最新版本的gdata。

关于objective-c - 如何使用访问 token 在Objective-C中使用gdata将视频上传到youtube,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13508083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com