我正在尝试使用 googleapis 从我的谷歌驱动器中创建“GET”数据(文件夹名称、ID、类型等)
我正在使用此代码
const fetchGoogleDriveFiles = async () => {
try {
const response = await fetch(
`https://www.googleapis.com/drive/v3/files?q=mimeType='application/vnd.google-apps.folder'&fields=files(id,name,mimeType,parents)`,
{
method: "GET",
headers: {
Authorization: `Bearer ${session.accessToken}`,
},
}
);
if (response.ok) {
const data = await response.json();
console.log("Google Drive Files:", data.files);
} else {
console.error("Error fetching Google Drive files:", response.status);
}
} catch (error) {
console.error("Error fetching Google Drive files:", error);
}
};
虽然这段代码确实获取了数据,但是“获取”的数据是我之前使用上传功能上传的数据。我想要并计划做的是,获取驱动器中已存在的所有数据,例如文件夹名称、id、memtype 等
我使用 API 路由进行身份验证等 从“next-auth/next”导入 NextAuth 从“next-auth/providers/google”导入 GoogleProvider
export const authOptions = ({
providers: [
GoogleProvider({
clientId : process.env.GOOGLE_CLIENT_ID ?? "" ,
clientSecret : process.env.GOOGLE_CLIENT_SECRET ?? "",
authorization: {
params:
{
scope: "openid email profile https://www.googleapis.com/auth/drive.file"
//
}
},
})
],
callbacks: {
async jwt({token, user , account} : any){
if (account) {
token.accessToken = account.access_token;
}
return token
},
async session({ session, token } : any) {
const newSession = {
...session,
accessToken: token.accessToken,
};
return newSession;
},
}
})
const handler = NextAuth(authOptions)
export {handler as GET, handler as POST}
有人可以帮我吗?我似乎不太明白
您的
https://www.googleapis.com/auth/drive.file
范围仅检索由同一客户端创建的文件和文件夹。
当您想要实现
get all the data that already exists inside my drive such as folder name, id, memtype etc etc
的目标时,需要更改范围如下。
https://www.googleapis.com/auth/drive.file
https://www.googleapis.com/auth/drive.metadata.readonly
在此范围内,仅返回所有文件和文件夹的文件元数据。如果您想同时检索文件元数据和文件内容,请使用
https://www.googleapis.com/auth/drive.readonly
。如果您要上传和下载文件内容和文件元数据(包括所有文件和文件夹),请使用https://www.googleapis.com/auth/drive
。
pageSize
和 pageToken
。请注意这一点。