我使用iOS数据API为YouTube做应用程序。google官方文档有指向这个SDK的链接。但它是SDK不工作,因为一个关系“gtm-http-获取器”的荚"gtm-oauth2“没有找到。不仅如此,ReadMe说:
注意:此库已被Google客户端库替换为Objective用于REST。新的应用程序应该使用它;现有的应用程序应该尽快更新,因为Google服务器最终将停止接受JSON请求。
好的,我安装下一个吊舱:
pod 'GoogleAPIClientForREST/YouTube'
pod 'GoogleAPIClientForREST/Oauth2'
pod "youtube-ios-player-helper"例如,我尝试获取我的视频列表:
self.service = [GTLRYouTubeService new];
self.service.APIKey = @"API_KEY";
GTLRYouTubeQuery_ActivitiesList *query = [GTLRYouTubeQuery_ActivitiesList queryWithPart:@"contentDetails"];
query.mine = YES;
[self.service executeQuery:query completionHandler:^(GTLRServiceTicket *ticket, id object, NSError *error) {
NSLog(@"object is %@",object);
NSLog(@"error is %@",error);
}];上传视频:
self.service = [GTLRYouTubeService new];
self.service.APIKey = @"API_KEY";
GTLRYouTube_Activity *activObjec = [GTLRYouTube_Activity new];
GTLRYouTubeQuery_ActivitiesInsert *query = [GTLRYouTubeQuery_ActivitiesInsert queryWithObject:activObjec part:@"fileDetails"];
[self.service executeQuery:query completionHandler:^(GTLRServiceTicket *ticket, id object, NSError *error) {
NSLog(@"object is %@",object);
NSLog(@"error is %@",error);
}];我得到401错误“登录所需”的上传视频和401错误“请求使用mine参数,但没有得到适当的授权”。
其中,我在中为iOS (没有包id)和OAuth 2.0标识符生成API密钥:


我在信息列表文件中添加:
<key>CLIENT_ID</key>
<string>client id from google console</string>
<key>REVERSED_CLIENT_ID</key>
<string>reversed client id from google console</string>
<key>PLIST_VERSION</key>
<string>1</string>
<key>BUNDLE_ID</key>
<string>com.ncl.VideoImploder</string>但我不明白,那是不对的。我做错什么了?
我看到了方法:- (void)setAuthorizer:(id ) method;在GTLRYouTubeService中,但是我不理解发送client_id和api_key到它的方法,我在GTMFetcherAuthorizationProtocol协议中没有看到类似的属性。
请告诉我,如何在GoogleAPIClientForREST中设置授权?
发布于 2016-09-29 15:33:21
安装下面的吊舱并使用它进行登录:
pod 'Google/SignIn'使用GIDSignIn登录后,创建GTLRYouTubeService实例:
let service = GTLRYouTubeService()
service.authorizer = GIDSignIn.sharedInstance().currentUser.authentication.fetcherAuthorizer()使用service的所有请求都将被授权
https://stackoverflow.com/questions/38521349
复制相似问题