Ошибка API YouTube Analytics: запрещено

Я прошел аутентификацию и построил свой запрос и получил ответ 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" 
  }
}

Я не знаю, где еще искать, и прочитал документацию. .


person andharris    schedule 07.08.2013    source источник
comment
Если вы получаете 404, значит, вы не авторизовались правильно. Если вы хотите, чтобы кто-нибудь помог, вам нужно предоставить воспроизводимый пример с указателями на соответствующую документацию API YouTube. Также немного странно использовать и RCurl, и httr.   -  person hadley    schedule 07.08.2013
comment
Я не видел, как получить заголовок в функции GET из httr, поэтому использовал RCurl, но аутентификация с помощью httr была простой. Это правильный способ включить заголовок в httr - GET(query, add_headers(Authorization = token))? Он возвращает ту же ошибку 403 Forbidden. Спасибо за любое направление или помощь.   -  person andharris    schedule 07.08.2013
comment
Вы можете использовать c(verbose(), url_signer) для получения подробного вывода из curl — это поможет убедиться, что вы отправляете правильные данные.   -  person hadley    schedule 07.08.2013
comment
Вы смогли это решить? Я испытываю то же самое   -  person Seth Brown    schedule 30.04.2015


Ответы (1)


По опыту, ответ 403 Forbidden от API аналитики может означать несколько вещей о видео, для которого вы пытаетесь получить аналитическую информацию:

  • Видео является частным и загружено не вами
  • Вы не заявили права собственности на видео
  • Видео не существует или было удалено автором.
  • Аккаунт загрузчика удален
  • You have a claim on the video that falls under one of the following statuses:
    • Inactive
    • потенциал

В случае сомнений обратитесь к своему менеджеру по работе с партнерами/TAM. Надеюсь, это поможет!

person Nick Knuckle    schedule 14.07.2015