Доступ к API данных YouTube с помощью Angular / Typescript 6 Framework не возвращает данные - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь использовать API данных YouTube, чтобы получить кому-то информацию о своем канале после того, как он войдет в свою учетную запись Google.Я могу отлично загрузить API данных YouTube, а также войти в систему пользователя. Однако загрузка данных YouTube не работает.

Я создал отдельную службу аутентификации для входа в систему и получения данных YouTube.

Конструктор

constructor(public afAuth: AngularFireAuth) {
    this.initClient();
    this.user$ = afAuth.authState;
  }

Инициализация данных

initClient() {
  gapi.load('client', () => {
    console.log('loaded client');
      gapi.client.init({
      apiKey: 'my key',
      clientId: 'my client id',
      discoveryDocs: ['https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest'],
      scope: 'https://www.googleapis.com/auth/youtube.readonly'
    });
    gapi.client.load('youtube', 'v3', () => console.log('loaded youtube'));
  });
}

Метод входа

async login() {
      const googleAuth = gapi.auth2.getAuthInstance();
      const googleUser = await googleAuth.signIn();
      const token = googleUser.getAuthResponse().id_token;
      console.log('my google user');
      console.log(googleUser);
      const credential = auth.GoogleAuthProvider.credential(token);
      await this.afAuth.auth.signInAndRetrieveDataWithCredential(credential);
}

Мой асинхронный метод getYoutubeData

async getYoutubeInfo() {
  const events = await gapi.client.youtube.channels.list({
    mine: true,
    part: 'contentDetails, snippets, statistics'
  });
  console.log(events);
  //this.youtubeItems = events.result.items;
}

Вход работает отличноно, похоже, метод getYoutubeInfo () не выполняется.Консоль остается пустой.

...