Objective c YouTube API v3示例项目引发GTLJSONRPCErrorDomain-32602错误请求

Objective c YouTube API v3示例项目引发GTLJSONRPCErrorDomain-32602错误请求,objective-c,youtube,google-api,youtube-api,Objective C,Youtube,Google Api,Youtube Api,我刚下载了这本书。我在Mac上用Xcode打开了YouTube示例项目。它构建和运行时没有错误 我向注册了一个项目,并为已安装的应用程序创建了一个客户端ID,选择iOS并输入示例代码的Bundle ID com.example.YouTubeSample。我将应用商店ID留空,并禁用了深度链接 我在示例应用程序中输入了生成的客户ID和客户机密。我也通过应用程序的窗口登录了谷歌,它告诉我我已经登录了 我独立地去了YouTube,上传了一个1Mb.mov文件,上传效果很好(尽管它告诉我可能存在音频/

我刚下载了这本书。我在Mac上用Xcode打开了YouTube示例项目。它构建和运行时没有错误

我向注册了一个项目,并为已安装的应用程序创建了一个客户端ID,选择iOS并输入示例代码的Bundle ID com.example.YouTubeSample。我将应用商店ID留空,并禁用了深度链接

我在示例应用程序中输入了生成的客户ID和客户机密。我也通过应用程序的窗口登录了谷歌,它告诉我我已经登录了

我独立地去了YouTube,上传了一个1Mb.mov文件,上传效果很好(尽管它告诉我可能存在音频/视频同步问题)

然后我通过示例应用程序上传了相同的文件。当它完成时,它给了我一个错误:

Error Domain=com.google.GTLJSONRPCErrorDomain Code=-32602 
   "The operation couldn’t be completed. (Bad Request)" 
   UserInfo=0x.... {error=Bad Request, NSLocalizedFailureReason=(Bad Request), 
   GTLStructuredError=GTLErrorObject 0x...: 
   {message:"Bad Request" data:[1] code:-32602}}
uploadTicket = [service executeQuery:query 
                   completionHandler:^(GTLServiceTicket* ticket, id object, NSError* error) {
    if (error) {
        GTLErrorObject* const errorObject = error.userInfo[kGTLStructuredErrorKey];
        NSLog(@"error from YouTube API: %@", errorObject.data);
    }
    ...
}];
(由于示例应用程序是针对Mac OS而不是iOS的,我还尝试在Google API中为安装的“其他”类型的应用程序创建第二个客户端ID。我在示例应用程序中输入了这个新ID和密码,当我上传.mov文件时,我遇到了相同的错误。)

在API控制台中,我看到一个错误报告,其中显示了一些新的错误代码400s

我做错了什么


谢谢

我刚刚退出并重新启动了Xcode和示例项目,它成功了(使用iOS客户端ID,我还没有尝试另一个)

快乐的日子

YouTube API将一个“结构化错误”对象打包在它返回的
NSError
对象中。结构化错误是一个
GTLErrorObject
,可以通过检查找到错误原因:

Error Domain=com.google.GTLJSONRPCErrorDomain Code=-32602 
   "The operation couldn’t be completed. (Bad Request)" 
   UserInfo=0x.... {error=Bad Request, NSLocalizedFailureReason=(Bad Request), 
   GTLStructuredError=GTLErrorObject 0x...: 
   {message:"Bad Request" data:[1] code:-32602}}
uploadTicket = [service executeQuery:query 
                   completionHandler:^(GTLServiceTicket* ticket, id object, NSError* error) {
    if (error) {
        GTLErrorObject* const errorObject = error.userInfo[kGTLStructuredErrorKey];
        NSLog(@"error from YouTube API: %@", errorObject.data);
    }
    ...
}];
样本输出(格式清晰):


嗨@Racing Tadpole,你解决问题了吗。我面对的正是你遇到的同一个人,几乎要放弃了。我退出了很多次XCode,但仍然没有解决问题,只是重新启动XCode对我来说很有效。。。祝你好运无论如何,谢谢你,不幸的是meHi@Racing Tadpole,我解决了我的问题,只是因为视频的标题是空字符串,并导致了这个错误,太愚蠢了。无论如何,谢谢你的帖子