我们正在尝试检索我们自己频道的Youtube分析数据。我们正在使用GTLQueryYouTubeAnalytics。这是一个用Swift编写的iPhone应用程序,使用Xcode 6
这就是我们所拥有的:
var scope = "https://www.googleapis.com/auth/youtube https://www.googleapis.com/auth/yt-analytics-monetary.readonly https://www.googleapis.com/auth/yt-analytics.readonly https://www.googleapis.com/auth/youtubepartner https://www.googleapis.com/auth/youtube.readonly"
var vc = GTMOAuth2ViewControllerTouch(scope: scope, clientID: clientID, clientSecret: clientSecret, keychainItemName: kKeyChainItemName, delegate: self, finishedSelector:Selector("authentication:finishedWithAuth:error:"))
In authentication(){
....
....
// On Success
service = GTLServiceYouTube()
service.authorizer = finishedWithAuth
// Channel is my Channel ID
var newQuery: GTLQueryYouTubeAnalytics = GTLQueryYouTubeAnalytics.queryForReportsQueryWithIds("channel==*****", startDate: "2014-10-15", endDate: "2014-10-16", metrics: "views,likes,shares,comments") as GTLQueryYouTubeAnalytics
var ticket1 = GTLServiceTicket()
ticket1 = service.executeQuery(newQuery, completionHandler: { (ticket: GTLServiceTicket!, object: AnyObject!, error: NSError!) -> Void in
println("Analytics: (object) or (error)")
})
}
这是我的输出:
Analytics: nil or Error Domain=com.google.GTLJSONRPCErrorDomain Code=404 "The operation couldn’t be completed. (Not Found)" UserInfo=0x***** {error=Not Found, NSLocalizedFailureReason=(Not Found), GTLStructuredError=GTLErrorObject 0x7f8e43ddc9b0: {message:"Not Found" data:[1] code:404}}
我们这里缺少什么?我们之前对YouTubeDataAPI进行了查询,结果运行良好。
感谢您的想法!
作用域没有意义。它应该只包含一个url,例如
var scope = "https://www.googleapis.com/auth/youtube"
感谢Dharmesh和Anthony,但作用域不是这样。作用域需要一个"字符串",因此,空格是谷歌所期望的。
问题的根本原因是使用的服务。要使用的正确服务是:
service=GTLServiceYouTubeAnalytics()