我一直在尝试关注https://developers.google.com/drive/v2/reference/files/insert和https://developers.google.com/drive/web/folder上的文档。但是,我不清楚在http调用期间我需要传递哪些信息。当我运行以下代码时,它只是创建了一个文件,Drive表示它不知道如何打开:
<cfhttp method="post" url="https://www.googleapis.com/upload/drive/v2/files">
<cfhttpparam type="header" name="Content-Type" value="application/json" />
<cfhttpparam type="URL" name="key" value="#myKey#">
<cfhttpparam type="URL" name="access_token" value="#myAccessToken#">
<cfhttpparam type="URL" name="corpus" value="DEFAULT">
<cfhttpparam type="URL" name="uploadType" value="multipart">
<cfhttpparam type="URL" name="Content-Type" value="application/json; charset=UTF-8 {""title"": ""Test 001"", ""parents"": [{""id"":""#validParentID#""}]}">
<cfhttpparam type="URL" name="Content-Type" value="application/vnd.google-apps.folder">
</cfhttp>
此代码源自我的调用,成功创建了一个空文件(虽然我还没有得到标题可用)。
更新
我根据Jedihomer Townend的建议更新了代码:
<cfhttp method="post" url="https://www.googleapis.com/upload/drive/v2/files">
<cfhttpparam type="header" name="Content-Type" value="application/json" />
<cfhttpparam type="URL" name="key" value="#myKey#">
<cfhttpparam type="URL" name="access_token" value="#myAccessToken#">
<cfhttpparam type="URL" name="corpus" value="DEFAULT">
<cfhttpparam type="URL" name="uploadType" value="multipart">
<cfhttpparam type="URL" name="Content-Type" value="application/json; charset=UTF-8 {""mimeType"": ""application/vnd.google-apps.folder"" ""title"": ""Test 001"", ""parents"": [{""id"":""#validParentID#""}]}">
</cfhttp>
这与原始代码的结果相同。
BOUNTY
我现在开始对此表示赏心悦目。除了解决此特定问题之外,我还非常感谢有关如何应用Google文档来指导http调用的见解。尽管REST是围绕http请求设计的技术,但Google的文档(双关语)似乎只涵盖了使用它的OOP方法。