Angular 我是否必须在每次api调用中调用gapi.load?

Angular 我是否必须在每次api调用中调用gapi.load?,angular,google-api-js-client,Angular,Google Api Js Client,我在一个Angular应用程序中使用GoogleAPI,我想我只需要输入服务构造函数 但这不起作用,因为js说它找不到gapi。是未定义的 角度服务-file-picker.components.ts 从“@angular/core”导入{Injectable}; /// 申报var gapi; @注射的({ providedIn:'根' }) 导出类Google文件服务{ 列表文件(){ 返回gapi.client.drive.files.list({ 页面大小:100, 字段:“next

我在一个Angular应用程序中使用GoogleAPI,我想我只需要输入服务构造函数

但这不起作用,因为js说它找不到gapi。是未定义的

角度服务-file-picker.components.ts


从“@angular/core”导入{Injectable};
/// 
申报var gapi;
@注射的({
providedIn:'根'
})
导出类Google文件服务{
列表文件(){
返回gapi.client.drive.files.list({
页面大小:100,
字段:“nextPageToken,文件(名称,webContentLink,mimeType)”,
//'q':“可见性='anyoneWithLink'和(mimeType='application/vnd.google apps.folder'”
q:“可见性=‘anyoneWithLink’”+
“和(”+
“(mimeType='image/gif')”+
“或(mimeType='image/jpeg')”+
“或(mimeType='image/png')”+
“或(mimeType='audio/wave')”+
“或(mimeType='audio/wav')”+
“或(mimeType='audio/x-wav')”+
“或(mimeType='audio/x-pn-wav')”+
“或(mimeType='audio/webm')”+
“或(mimeType='audio/ogg')”+
" )",
订购人:“姓名”
});
}
构造函数(){
gapi.load('client',()=>{
log('loaded client');
gapi.client.init({
apiKey:'aaa',
客户ID:'bbb',
发现法团:[”https://www.googleapis.com/discovery/v1/apis/drive/v3/rest"],
范围:'https://www.googleapis.com/auth/drive.readonly'
}).然后(()=>{
const googleAuth=gapi.auth2.getAuthInstance();
if(googleAuth.isSignedIn.get()){
返回googleAuth.currentUser.get();
}
返回googleAuth.sign();
}).然后((谷歌用户)=>{
const token=googleUser.getAuthResponse().id\u token;
log('token='+token);
});
})
}
tsconfig.json

{
“保存”:false,
“编译器选项”:{
“baseUrl”:“/”,
“outDir”:“/dist/out tsc”,
“源地图”:正确,
“声明”:虚假,
“向下迭代”:正确,
“实验生态学者”:没错,
“moduleResolution”:“节点”,
“进口者”:没错,
“目标”:“es2015”,
“模块”:“es2020”,
“lib”:[
“es2018”,
“dom”
],
“类型根”:[
“节点\模块/@类型”
],
“类型”:[
“gapi”
],
},
“角度编译器选项”:{
“enableI18nLegacyMessageIdFormat”:false
}
}
firefox控制台


22:24:21.197 Angular is running in development mode. Call enableProdMode() to enable production mode. vendor.js:46256:17

22:24:21.271 localStorage.getItem(SESSION_ID)=c7Pl36g9CIM1 2 session.ts:26:12

22:24:21.274
ERROR TypeError: gapi.client is undefined
    files google-files.service.ts:13
    ngOnInit file-picker.component.ts:19
    callHook vendor.js:20884

22:24:21.302 XHRGEThttp://localhost:4200/sockjs-node/info?t=1620005061298 [HTTP/1.1 200 OK 0ms]

22:24:21.357 loaded client google-files.service.ts:174:14
有没有正确使用gapi和angular的方法?令人难以置信的是,谷歌没有帮助我们使用gapi和angular


找不到他们关于这一组合的任何教程。

Q:我在Angular应用程序中使用google api,我想我只需要输入服务构造函数。A:是的,听起来不错。在这里寻找一些替代方案:,