两个包中的方法都已过期。
尝试验证时的响应:
{
error: "idpiframe_initialization_failed",
details:"You have created a new client application that uses libraries for user authentication or authorization that will soon be deprecated. New clients must use the new libraries instead; existing clients must also migrate before these libraries are deprecated. See the Migration Guide for more information."
}
关于您的问题所附的软件包,创建者应该更新它以以新的方式进行身份验证。并回答您关于使用新的 Google Identity Service 更新 Google Picker API 文档的评论,似乎已经有一个功能请求,您可以参考此 link 了解更多详细信息。
我已经连续8天被同样的问题困扰了。到目前为止,使用 react-google-drive-picker 库仍然存在此错误,其原因是在 picker.ts (#40-#47) 中找到以下代码:
await gapi.client.init({
immediate: false,
ux_mode: 'redirect',
apiKey: API_KEY,
clientId: CLIENT_ID,
discoveryDocs: DISCOVERY_DOCS,
scope: SCOPES.join(' ')
});
由于 clientId 和 scope,此请求会初始化 gapi.auth2,并且只能完成 一次,并且很可能您也在其他地方执行此操作。换句话说,一个新的 React 应用程序可以很好地使用该库,但具有 使用 Google 进行社交登录的应用程序可能会因多次调用 gapi.auth2而产生副作用
有关该主题的更多信息无法多次运行gapi.client.init
一个可能的解决方法是在您的 index.html
中添加以下脚本<script async defer src="https://apis.google.com/js/api.js"></script>
我写的一篇博客文章介绍了如何将 Google Picker 添加到 React: https://medium.com/@mohammedshameemke/google-picker-api-integration-to-reactjs-mui-typescript-6c7461aa4598