Я бы хотел подключить свое угловое приложение к своему альбому фотографий в Google.
Я активирую API на своей консоли Google, у меня есть ключ и ID клиентов OAuth 2.0:
googleconsole
Я получаю токен oauth2 моей учетной записи Google: учетной записи, которой принадлежит альбом фотографий Google.
export class UserComponent implements OnInit {
@Output() token = new EventEmitter<any>();
constructor(private oauthService: OAuthService) {
this.oauthService.configure(googleAuthConfig);
this.oauthService.tokenValidationHandler = new JwksValidationHandler();
this.oauthService.loadDiscoveryDocumentAndTryLogin();
}
ngOnInit() {
this.token.emit(this.oauthService.getAccessToken());
}
connectOAuth2 () {
this.oauthService.initImplicitFlow();
}
}
Но я не понимаю, что мне нужно сделать, чтобы через мое приложение получить доступ к API и через API к моему альбому.
Вот код, я не знаю, как передать в запросе учетные данные. Я полагаю, что мне нужно указать в запросе идентификатор для использования API и токен для доступа к учетной записи Google, которая владеет фотоальбомом Google. Я прав?
export class ApiPhotoComponent implements OnInit {
@Input() token;
public config = {'apiKey' : 'myKey',
'oAuthClientID' : 'myClientID',
'oAuthclientSecret' : 'myClientSecret',
'oAuthCallbackUrl' : 'http://localhost:4200',
'port' : 8080,
'scopes' : ['https://www.googleapis.com/auth/photoslibrary.readonly', 'profile'],
'photosToLoad' : 150,
'searchPageSize' : 100,
'albumPageSize' : 50,
'apiEndpoint' : 'https://photoslibrary.googleapis.com/v1/albums',
'token' : 'Bearer ' + this.token};
constructor(public apiService: ApiService) {
}
ngOnInit() {
}
getGooglePhotos() {
this.apiService.getGooglePhotos( this.config.apiEndpoint, this.config)
.subscribe(obs => { console.log (obs); }
, err => { console.log('erreur getContenus section : - section.component.ts -'); });
}
}
функция getGooglePhotos определяет заголовок следующим образом:
getGooglePhotos (url, config) {
const tokenOption = {
headers: new HttpHeaders({
'X-API-KEY' : config.apiKey,
'Access-Control-Allow-Origin' : 'http://localhost/4200',
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + config.token
})
};
return this.getData( url, tokenOption);
}