Google chrome extension 使用googledriveapi的Chrome扩展
我正试图获得一个谷歌扩展使用谷歌驱动器api 到目前为止,我还没有发布这个扩展,我正在努力弄清楚清单中密钥和客户机id的值应该是多少Google chrome extension 使用googledriveapi的Chrome扩展,google-chrome-extension,google-drive-api,Google Chrome Extension,Google Drive Api,我正试图获得一个谷歌扩展使用谷歌驱动器api 到目前为止,我还没有发布这个扩展,我正在努力弄清楚清单中密钥和客户机id的值应该是多少 "permissions": ["https://www.googleapis.com/","https://accounts.google.com/","identity"], "background":{ "scripts": [
"permissions": ["https://www.googleapis.com/","https://accounts.google.com/","identity"],
"background":{
"scripts": ["background.js"]
},
"oauth2": {
"client_id": "?????",
"scopes": [
"https://www.googleapis.com/auth/drive"
]
},
key:"????"
我尝试了本文中的说明:
这表明可以通过查看中扩展的“id”字段来找到键chrome://extensions. 然后我可以转到Library/applicationsupport/Google/Chrome/Default/Extensions/{id},我可以使用其中清单中的密钥
我尝试通过进入google开发者控制台获取客户机id,在那里我创建了一个项目并启用了驱动API。然后我进入Google Drive API屏幕并创建一个“Web应用程序”OAuth 2凭据,我已经将客户端id复制到清单的OAuth部分,但是当我调用chrome.identity.getAuthToken时,我在chrome.runtime.lastError中得到了这个错误
OAuth2请求失败:服务响应错误:“错误的客户端id:{0}”
谷歌开发者的控制台是为chrome扩展生成客户端id的正确位置吗?有一条警告说“为了保护您和您的用户,您的同意屏幕和应用程序需要通过谷歌验证”。这是一个扩展,不是一个应用程序,所以我想我找错地方了
任何提示都将不胜感激。媒体文章 我推荐Google的方法,因为它的配置要少得多,但要获得属性值,请注意,您可以执行以下操作:
键可通过以下方式找到:
包装镀铬延长件
将.crx文件拖动到chrome://extensions
在windows文件资源管理器中导航到C:\Users\\AppData\Local\Google\Chrome\User Data\Default\Extensions\\
打开manifest.json
复制键
值并将其添加到扩展名中
文章接着指出,您需要删除打包的扩展并加载未打包的dev扩展
对于client\u id
,您需要创建一个新的OAuth客户端id(Web应用程序),并在以下结构中添加重定向URI:
https://.chromiumapp.org
。
然后可以将其添加到manifest.json
我也会确保配置您的同意屏幕添加谷歌驱动器,这将是一个敏感的权限。只要您在扩展中使用您的Google帐户,您就不需要经过验证过程
谷歌示例
为了让OAuth在Chrome扩展中工作,下面是一个更深入的演练:
基本上,您需要将扩展作为草稿上传到Chrome Developer仪表板中。一旦上传(可以保留为草稿),它将在web商店中创建一个项目ID
您还可以在上传项目的包部分找到公钥
,这将是清单中的密钥
值
"permissions": ["https://www.googleapis.com/","https://accounts.google.com/","identity"],
"background":{
"scripts": ["background.js"]
},
"oauth2": {
"client_id": "?????",
"scopes": [
"https://www.googleapis.com/auth/drive"
]
},
key:"????"
然后,您可以在Google云控制台中使用新的OAuth客户端ID(Chrome App)配置项目,并使用项目ID链接到web商店URL。保存后,您现在可以将相关的客户端ID
值添加到清单中。媒体文章说您可以“伪造注册”扩展。它还说,在云控制台中,它应该是一个web应用程序,而不是chrome应用程序。我浏览了这篇文章,添加了他们想要的键
和客户端id
。我会推荐谷歌的例子,因为它不需要你配置一个身份验证端点,这也可能是它不能正常工作的原因。在谷歌的文章中,它说你应该创建OAuth客户端ID作为一个Chrome应用程序,但你上面说它应该是一个Web应用程序。如果它是一个Chrome应用程序,你必须给它一个应用程序ID,这是你的应用程序的Chrome网络商店URL的最后一部分。如果它是一个Web应用程序,它就是一个重定向url。我浏览了谷歌的例子,它会工作的。谢谢
"permissions": ["https://www.googleapis.com/","https://accounts.google.com/","identity"],
"background":{
"scripts": ["background.js"]
},
"oauth2": {
"client_id": "?????",
"scopes": [
"https://www.googleapis.com/auth/drive"
]
},
key:"????"