Ios 从更新的Xcode应用程序上传视频到youtube

Ios 从更新的Xcode应用程序上传视频到youtube,ios,xcode,video,youtube,oauth-2.0,Ios,Xcode,Video,Youtube,Oauth 2.0,我有一个应用程序,我过去可以登录到谷歌帐户,然后上传视频到该帐户。然而,应用程序包ID发生了变化,我不得不更新到googleSignIn。 因此,现在当我打开view controller时,我想上传视频,我有一个google登录按钮,用户点击该按钮并登录,然后选择让应用程序访问范围: googleapis.com/auth/youtube googleapis.com/auth/youtube.upload googleapis.com/auth/youtubepartner googleap

我有一个应用程序,我过去可以登录到谷歌帐户,然后上传视频到该帐户。然而,应用程序包ID发生了变化,我不得不更新到googleSignIn。
因此,现在当我打开view controller时,我想上传视频,我有一个google登录按钮,用户点击该按钮并登录,然后选择让应用程序访问范围:

googleapis.com/auth/youtube
googleapis.com/auth/youtube.upload
googleapis.com/auth/youtubepartner
googleapis.com/auth/youtube.force-ssl
我还更新了apps开发者密钥 因此,我现在有一个开发者密钥和一个客户端id,我在应用程序中为以下代码替换了旧的密钥和客户端id

- (GTMOAuth2Authentication *)authForDailyMotion {
NSURL *url = [GDataServiceGoogleYouTube youTubeUploadURLForUserID:kGDataServiceDefaultUser];
NSString *redirectURI = @"http://www.google.com/OAuthCallback";
NSString *clientID = @"552XXXXXXXX3-banchtj9877k4o4noj32eu1h5jokctu0.apps.googleusercontent.com";
NSString *clientSecret = devKey;
GTMOAuth2Authentication *auth;
auth = [GTMOAuth2Authentication authenticationWithServiceProvider:@"my little world"
                                                         tokenURL:url
                                                      redirectURI:redirectURI
                                                         clientID:clientID
                                                     clientSecret:clientSecret];
return auth;
}

用户登录谷歌后,他们会进入一个页面,显示应用程序请求访问的访问权限

管理youtube帐户 查看和管理Youtube上的资产和相关内容 管理youtube视频

当用户当前点击“允许”按钮时,他们会被带到google.com,在那里他们可以从设备上的摄像头上传视频和其他内容。 我希望将用户重定向回应用程序中的视图,在该视图中,查看器可以 输入标题、说明、标签,选择类别,选择其隐私,然后使用直接从应用程序发布视频

- (void)uploadVideoFile {
NSString *audioName = [pictureDictionary4 objectForKey:@"photoVideokey"];
NSArray *pathsa = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectorya = [pathsa objectAtIndex:0];
NSString *moviePath = [documentsDirectorya stringByAppendingPathComponent:@"/Movie"];
//Get a full path to the image in the documents directory.
NSString *fullPatha = [moviePath stringByAppendingPathComponent:audioName];
GDataServiceGoogleYouTube *service = [self youTubeService];
NSURL *url = [GDataServiceGoogleYouTube youTubeUploadURLForUserID:kGDataServiceDefaultUser];
NSString *filename = audioName;
NSData *data = [NSData dataWithContentsOfFile:fullPatha];
GDataYouTubeMediaGroup *media = [GDataYouTubeMediaGroup mediaGroup];
[media setMediaTitle:title];
[media setMediaDescription:desc];
[media addMediaCategory:category];
[media setMediaKeywords:keywords];
NSString *mimeType = [GDataUtilities MIMETypeForFileAtPath:fullPatha
                                           defaultMIMEType:@"video/mp4"];
 GDataEntryYouTubeUpload *entry;
entry = [GDataEntryYouTubeUpload uploadEntryWithMediaGroup:media
                                                /*fileHandle:fileHandle*/
                                                      data:data
                                                  MIMEType:mimeType
                                                      slug:filename];
GDataServiceTicket *ticket;
ticket = [service fetchEntryByInsertingEntry:entry
                                  forFeedURL:url
                                    delegate:self
                              didFinishSelector:@selector(uploadTicket:finishedWithEntry:error:)];


[self setUploadTicket:ticket];
GTMHTTPUploadFetcher *uploadFetcher = (GTMHTTPUploadFetcher *)[ticket objectFetcher];
[uploadFetcher setLocationChangeBlock:^(NSURL *url) {
    [self setUploadLocationURL:url];
点击“发布”

我认为重定向url需要更改,以便对应用程序进行身份验证,然后用于上传视频。不过,我对此并不确定

现在,如果用户点击“完成”按钮并返回应用程序,输入上述信息并点击“发布”

我得到以下错误

upload failed: Error Domain=com.google.HTTPStatusCode=401 *(User authentacation required)  
我认为这是因为授权只授予在线上传,而不是通过应用程序

有人能告诉我这个假设是否正确,是吗?点击“允许”后,我如何将用户重定向回应用程序上传视频

如果我的假设不正确,请有人给我一些指导,告诉我如何使这项工作如我所愿

  • 按照步骤获取谷歌登录
  • 这里是上传视频到YouTube