2016-03-10 3 views
0

Я пытаюсь загрузить видео на аккаунт YouTube от имени пользователя [email protected] с помощью API данных YouTube V3, и я получаю ошибка «access_denied». Согласно Google документации:Загрузите видео на YouTube с учетной записью службы от имени пользователя по серверным данным API V3

  1. Я открыл учетную запись службы с помощью администратора учетной записи Google «[email protected]» и Выполнив действия: www.developers.google.com/identity/protocols/OAuth2ServiceAccount# delegatingauthority.

  2. Я зарегистрировался как «[email protected]» и предоставил разрешения учетной записи службы «[email protected]», созданной на шаге 1. (на www.console.developers.google.com/permissions/ вкладка projectpermissions 'разрешения' => 'добавить членов') add member

Это мой запрос (JAVA):

youtube = new YouTube.Builder(
      GoogleAuthImpl.HTTP_TRANSPORT, 
      GoogleAuthImpl.JSON_FACTORY, 
      new GoogleCredential.Builder() 
        .setTransport(HTTP_TRANSPORT) 
        .setJsonFactory(JSON_FACTORY) 
        .setServiceAccountId("[email protected]") 
        .setServiceAccountPrivateKeyFromP12File(new File("my-service-account.p12")) 
        .setServiceAccountScopes(Collections.singleton(SQLAdminScopes.SQLSERVICE_ADMIN)) 
        .setServiceAccountUser("[email protected]") 
        .build() 
    ) 
      .setApplicationName("My App") 
      .build(); 

И это ответ: com.google.api.client.auth.oauth2.TokenResponseException: 403 Forbidden { "error" : "access_denied", "error_description" : "Requested client not authorized." } at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:105) at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:287) at com.google.api.client.auth.oauth2.TokenRequest.execute(TokenRequest.java:307) at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.executeRefreshToken(GoogleCredential.java:384) at com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:489) at com.google.api.client.auth.oauth2.Credential.intercept(Credential.java:217) at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:859) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)

Можно ли загружать видеоролик от имени пользователей? Я делаю что-то неправильно?

Кроме того, я нашел ссылку на API данных YouTube - потоки Oauth 2.0, которые могут указывать на то, что эта операция (экспорт на YouTube от имени другого пользователя через учетную запись службы) не поддерживается: www.developers.google.com/ youtube/v3/руководства/аутентификация # OAuth2_Flows

Порадовал бы ваш ответ!

ответ

0

API YouTube не поддерживает учетные записи служб, которые необходимо использовать Oauth2.

+0

@DalmTo Можете ли вы поделиться любым ресурсом, связанным с обновлением заголовка видео YouTube с помощью Oauth2 –

+0

У меня нет возможности java, извините, я сделал это несколько лет назад с C#. – DaImTo