3

我开始使用 ColdFusion 在 Google Drive API 上工作,但我坚持使用 ColdFusion 上传文件。我已经完成了新项目的注册,获取了客户端和客户端密码,并且我成功地获得了 accessToken,但不知何故我无法将文件上传到谷歌驱动器上。

Here is the code to get the code and accesstoken

<cfoutput>  
  <cfset request.oauthSettings = {
   scope = "https://www.googleapis.com/auth/drive",      client_id = "clientid",
   client_secret = "clientsecret",
   redirect_uri = "link"}
  />      
  <!--- create login url --->
  <cfset loginURL = "https://accounts.google.com/o/oauth2/auth?scope=" 
   & request.oauthSettings["scope"]
   & "&redirect_uri=" & request.oauthSettings["redirect_uri"]
   & "&response_type=code&client_id=" & request.oauthSettings["client_id"]
   & "&access_type=offline"
  />

  <a href="#loginURL#">Login with Google account that has access to analytics</a>

  <cfif isDefined("URL.code") AND URL.code NEQ "access_denied">     
    <cfhttp url="#arguments.gaOauthUrl#" method="post">
     <cfhttpparam name="code" type="formField" value="#arguments.code#">
     <cfhttpparam name="client_id" type="formField" value="clientid">
     <cfhttpparam name="client_secret" type="formField" value="clientsecret">
     <cfhttpparam name="redirect_uri" type="formField" value="link">
     <cfhttpparam name="grant_type" type="formField" value="authorization_code">
    </cfhttp>       
  </cfif>    
</cfoutput>

我正在使用以下代码上传文件,我知道我必须传递更多参数才能使其正确,但我不知道这些参数是什么。

<cfhttp url="https://www.googleapis.com/upload/drive/v2/files?uploadType=media" method="post">
  <cfhttpparam name="Content-Type" type="formField" value="text/plain">
  <cfhttpparam name="Authorization" type="formField" value="#session.ga_accessToken#">            
</cfhttp>

我试图在谷歌文档中找到答案,但没有运气;ColdFusion 没有文档。如果有人对此区域有一些线索,请告诉我其他参数。

4

1 回答 1

2

您没有正确设置 Authorization 标头。它应该是

Authorization:  Bearer ya29.AHES6ZRosLBEnyGGH9EysIrAB7Z
于 2013-11-12T11:57:46.013 回答