Google chrome extension 使用googledriveapi的Chrome扩展

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": [

我正试图获得一个谷歌扩展使用谷歌驱动器api

到目前为止,我还没有发布这个扩展,我正在努力弄清楚清单中密钥和客户机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:"????"
我尝试了本文中的说明:

这表明可以通过查看中扩展的“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:"????"