Я прошел аутентификацию и построил свой запрос и получил ответ 403 как Запрещено.
Я прошел аутентификацию с помощью примера httr
# 1. Find OAuth settings for google:
google <- oauth_endpoint(NULL, "auth", "token", base_url = "https://accounts.google.com/o/oauth2")
# 2. Register an application at https://code.google.com/apis/console#access
myapp <- oauth_app("google", "{my app id}.apps.googleusercontent.com", secret = "{my secret}")
# 3. Get OAuth credentials
cred <- oauth2.0_token(google, myapp, scope = "https://www.googleapis.com/auth/yt-analytics.readonly")
После авторизации в браузере консоль R выводит «Аутентификация завершена».
Запрос
query <- "https://www.googleapis.com/youtube/analytics/v1/reports?
ids=channel%3D%3D{my channel id}
&start-date=2013-01-01
&end-date=2013-07-31
&metrics=views
&dimensions=day"
Токен для авторизации передается в заголовке как
token <- paste("Authorization: Bearer ",cred[[1]], sep="")
Я пробовал запрос как с httr, так и с RCurl.
# RCurl
api.response <- getURL(query, httpheader = token)
# httr - I think this is the right way to add the token to the header
url_signer <- sign_oauth2.0(cred[[1]], as_header = TRUE)
api.response <- GET(query, config = url_signer)
Ответ api.response, к сожалению, не очень информативен.
{
"error":
{
"errors":
[
{
"domain": "global",
"reason": "forbidden",
"message": "Forbidden"
}
],
"code": 403,
"message": "Forbidden"
}
}
Я не знаю, где еще искать, и прочитал документацию. .
c(verbose(), url_signer)
для получения подробного вывода из curl — это поможет убедиться, что вы отправляете правильные данные. - person hadley   schedule 07.08.2013