我使用YouTube DATA API为iOS做应用程序。 Official google documentation已链接到this SDK。但它是SDK不工作,因为其中一个关系" gtm-http-fetcher" for pod" gtm-oauth2"未找到。更重要的是,ReadMe说:
注意:此库已被Google API客户端库取代 Objective-C用于REST。新的应用程序应该使用它; 现有的申请应尽快更新 Google服务器最终将停止接受JSON-RPC请求。
好的,我安装了下一个pod:
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开发者控制台API密钥中生成(没有包ID)和OAuth 2.0标识符:
我添加到info plist文件:
<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)authorize; 在GTLRYouTubeService,但我不明白发送client_id和api_key到它的方法,我没有在GTMFetcherAuthorizationProtocol协议中看到类似的属性。
请告诉我,GoogleAPIClientForREST中的设置授权如何?
答案 0 :(得分:3)
安装以下pod并使用它登录:
function findCell() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var dataRange = sheet.getDataRange();
var values = dataRange.getValues();
for (var i = 0; i < values.length; i++) {
var row = "";
for (var j = 0; j < values[i].length; j++) {
if (values[i][j] == "User") {
row = values[i][j+1];
Logger.log(row);
Logger.log(i); // This is your row number
}
}
}
}
使用pod 'Google/SignIn'
创建GIDSignIn
实例登录后:
GTLRYouTubeService
let service = GTLRYouTubeService()
service.authorizer = GIDSignIn.sharedInstance().currentUser.authentication.fetcherAuthorizer()
的所有请求都将获得授权