我想将我的角度应用程序连接到我拥有的Google相册。
我在Google控制台上激活了API,我拥有密钥和ID客户端OAuth 2.0: googleconsole
我获得了我的Google帐户的oauth2令牌:拥有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访问我的相册该做什么。 这是一个代码,我不知道如何在请求中传递凭据。我想我必须在请求中提供ID以使用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);
}