如何使用googlePhotosApi将我的角度应用程序连接到Google相册?

时间:2019-04-02 14:04:22

标签: angular api google-api google-photos

我想将我的角度应用程序连接到我拥有的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);
  }

0 个答案:

没有答案