Я пытаюсь использовать 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 () не выполняется.Консоль остается пустой.