【问题标题】:Is there a reference for accessing the Google APIs in a non-OOP way?是否有以非 OOP 方式访问 Google API 的参考?
【发布时间】:2015-06-05 13:50:46
【问题描述】:

我们正在尝试使用 Google API 在 Google Drive 上创建文件夹和文档,并提供访问它们的链接。这是一个比较简单的要求。但是,我找到的所有参考资料都显示了来自各种似乎使用辅助库的面向对象编程语言的代码示例。我们正在使用 ColdFusion,并且需要通过直接 HTTP 调用 (CFHTTP) 来访问 API,对此我找不到很好的文档。

是否有来自 Google 或其他地方的文档显示每次调用所需的 URL 和 URL 变量?对于 oAuth2.0 和 Google Drive,我们都需要这些。

【问题讨论】:

  • 既然您使用的是coldfusion,您应该能够使用java版本(尽管我几乎没有这样做的经验)。或者,您可以安装另一个您喜欢的版本并监控正在发出的请求/响应。似乎没有任何关于其余 api 本身的文档。
  • 像这样:developers.google.com/drive/v1/reference ?我用谷歌搜索了“google drive rest api”,这是第一个链接。
  • 大多数或所有 google api 都有一个“休息”记录的使用方式,这是通过原始 https 调用完成的。当然驱动器文档有它。
  • @AdamCameron v1 已弃用 v2 应改为:developers.google.com/drive/v2/reference
  • 干杯@abraham:这是一个很好的更正。不过,我认为我的观点仍然存在:在使用常用技术时,Google 非常擅长回答“我如何……”之类的问题。

标签: oauth coldfusion oauth-2.0 google-api google-drive-api


【解决方案1】:

我只是从一些 cmets 中提取这个。

Google(搜索词:“google drive rest api”)会找到旧版本的文档:“Drive REST API Reference (v1)”。根据@abraham 的指导,当前版本实际上是这样的:“Drive REST API Reference (v2)”。

【讨论】:

    【解决方案2】:

    在这里@Google Drive API Explorer 你可以找到所有可用的API。单击任何 API,您将获得所有带有描述的变量(必需和可选)。然后提出请求,他们会向您显示请求的 URL 和 json 响应。

    也可以看看this site

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      无论如何,我都会推荐使用 Java 客户端库,主要基于 Google 的以下建议:

      虽然您的应用程序可以通过直接完成这些任务 使用 HTTP 与 OAuth 2.0 系统交互,机制 服务器到服务器的身份验证交互要求应用程序 创建和加密签名 JSON Web 令牌 (JWT),它是 很容易犯严重的错误,可能会产生严重的影响 应用程序的安全性。

      因此,我们强烈建议您使用库,例如 Google API 客户端库,将密码学抽象出来 来自您的应用程序代码。

      (阅读更多Here

      我们刚刚经历了类似的过程来访问 Google Cloud Storage API。

      如果您决定走这条路,则必须翻译 Java 代码示例以使其对 ColdFusion 友好。以下是向 Cloud Storage API 发出简单请求的示例(获取有关我们的存储桶之一的信息):

      httpTransport = createObject("java", "com.google.api.client.http.javanet.NetHttpTransport").init();
      jsonFactory = createObject("java","com.google.api.client.json.jackson2.JacksonFactory").init();
      credentialBuilder =
      createObject("java", "com.google.api.client.googleapis.auth.oauth2.GoogleCredential$Builder");
      
      credentialBuilder.setTransport(httpTransport);
      credentialBuilder.setJsonFactory(jsonFactory);
      credentialBuilder.setServiceAccountId("SERVICE_ACCOUNT_EMAIL_ADDRESS");
      p12File =createObject("java", "java.io.File").init(expandPath("PATH_TO_P12_FILE"));
      credentialBuilder.setServiceAccountPrivateKeyFromP12File(p12File);
      StorageScopes = createObject("java", "com.google.api.services.storage.StorageScopes");
      
      // Alternative StorageScopes: DEVSTORAGE_READ_ONLY, DEVSTORAGE_READ_WRITE
      credentialBuilder.setServiceAccountScopes([StorageScopes.DEVSTORAGE_FULL_CONTROL]);
      credential = credentialBuilder.build();
      
      httpRequestInitializer = createObject("java", "com.google.api.client.http.HttpRequestInitializer");
      
      dataStoreFactory = createObject("java", "com.google.api.client.util.store.FileDataStoreFactory").init(DATA_STORE_DIR);
      
      storage = createObject("java", "com.google.api.services.storage.Storage$Builder").init(httpTransport, jsonFactory, credential);
      storage.setApplicationName(APP_NAME);
      storage = storage.build();
      getBucket = storage.buckets().get(BUCKET_NAME);
      getBucket.setProjection("full");
      bucket = getBucket.execute();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-10
        相关资源
        最近更新 更多