Как подключить мое угловое приложение к фотоальбому Google с помощью googlePhotosApi? - PullRequest
0 голосов
/ 02 апреля 2019

Я бы хотел подключить свое угловое приложение к своему альбому фотографий в 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);
  }
...