首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何通过GoogleAPIClientForREST为iOS授权和上传视频

我如何通过GoogleAPIClientForREST为iOS授权和上传视频
EN

Stack Overflow用户
提问于 2016-07-22 08:08:21
回答 1查看 1.1K关注 0票数 0

我使用iOS数据API为YouTube做应用程序。google官方文档有指向这个SDK的链接。但它是SDK不工作,因为一个关系“gtm-http-获取器”的荚"gtm-oauth2“没有找到。不仅如此,ReadMe说:

注意:此库已被Google客户端库替换为Objective用于REST。新的应用程序应该使用它;现有的应用程序应该尽快更新,因为Google服务器最终将停止接受JSON请求。

好的,我安装下一个吊舱:

代码语言:javascript
复制
pod 'GoogleAPIClientForREST/YouTube'
pod 'GoogleAPIClientForREST/Oauth2'
pod "youtube-ios-player-helper"

例如,我尝试获取我的视频列表:

代码语言:javascript
复制
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);
}];

上传视频:

代码语言:javascript
复制
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密钥:

我在信息列表文件中添加:

代码语言:javascript
复制
<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中设置授权?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-29 15:33:21

安装下面的吊舱并使用它进行登录:

代码语言:javascript
复制
pod 'Google/SignIn'

使用GIDSignIn登录后,创建GTLRYouTubeService实例:

代码语言:javascript
复制
let service = GTLRYouTubeService()
service.authorizer = GIDSignIn.sharedInstance().currentUser.authentication.fetcherAuthorizer()

使用service的所有请求都将被授权

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38521349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档