是否有以非OOP方式访问Google API的参考?

时间:2015-06-05 13:50:46

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

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

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

3 个答案:

答案 0 :(得分:1)

在这里@ Google Drive API Explorer您可以找到所有可用的API。单击任何API,您可以获得所有变量(必需和可选)以及描述。并且会发出请求,他们会向您显示请求的网址和json响应。

另请查看this site

希望这有帮助。

答案 1 :(得分:1)

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

Google(搜索字词:" google drive rest api")会显示旧版本的文档:" Drive REST API Reference (v1)"。根据@ abraham的指导,目前的版本实际上就是:" Drive REST API Reference (v2)"。

答案 2 :(得分:0)

我主要根据谷歌的这个建议,推荐使用Java客户端库:

  

虽然您的应用程序可以直接完成这些任务   使用HTTP与OAuth 2.0系统进行交互   服务器到服务器的身份验证交互需要应用程序   创建并加密签名JSON Web令牌(JWT),以及它   容易造成严重错误,可能会对其产生严重影响   您的申请的安全性。

     

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

(阅读更多Here

我们刚刚通过了类似的过程来访问Google云端存储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();