我开始使用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没有文档。如果有人对此区域有一些线索,请告诉我其他参数。
答案 0 :(得分:2)
您没有正确设置授权标头。它应该是
Authorization: Bearer ya29.AHES6ZRosLBEnyGGH9EysIrAB7Z