是否有以非面向对象的方式访问Google api的参考



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

是否有文档在任何地方,从谷歌或其他,显示每个调用所需的URL和URL变量?对于oAuth2.0和Google Drive,我们都需要这些

我只是从一些注释中提取了这个。

Google(搜索词:"Google drive rest api")出现了旧版本的文档:"drive rest api参考(v1)"。根据@abraham的指导,当前版本实际上是这样的:"驱动REST API参考(v2)"。

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

也看看这个网站。

无论如何,我都要使用Java Client库,主要基于Google的推荐:

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

因此,我们强烈建议您使用库,例如Google api客户端库,它抽象了加密从您的应用程序代码

(点击这里阅读更多)

我们刚刚经历了一个类似的过程来访问谷歌云存储api。

如果您决定走这条路,您将不得不翻译Java代码示例,使其对ColdFusion友好。下面是一个简单的请求到云存储API的例子(获取关于我们的一个bucket的信息):

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();

最新更新