使用ColdFusion的Google Drive API

时间:2013-11-11 22:30:58

标签: coldfusion google-drive-api

我开始使用ColdFusion处理Google Drive API,但我仍然坚持使用ColdFusion上传文件。我已经完成了新项目的注册,获得了客户端和客户端的秘密,我成功地获得了accessToken,但不知怎的,我无法在google驱动器上传文件。

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没有文档。如果有人对此区域有一些线索,请告诉我其他参数。

1 个答案:

答案 0 :(得分:2)

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

Authorization:  Bearer ya29.AHES6ZRosLBEnyGGH9EysIrAB7Z