且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Google oauth令牌给出405错误

更新时间:2023-02-16 08:07:51

我发现答案:键是使用cfhttpparam类型' body '。
As per livedocsbody:指定HTTP请求的主体ColdFusion不会自动设置内容类型头或URL对主体内容进行编码要指定内容类型,请使用单独的cfhttp标记类型=

I found the answer: key was to use cfhttpparam type 'body'. As per livedocs "body: specifies the body of the HTTP request. ColdFusion does not automatically set a content-type header or URL encode the body contents. To specify the content-type, use a separate cfhttp tag with type=header. "

以下代码现在返回了我的访问令牌:

Below code is returning me access token now :)

<cfset client_id = "458381219741.apps.googleusercontent.com">
<cfset client_secret = "**********">
<cfset callback = "http://console.mbwebportal.com/oauth2callback">

<cfset postBody = "code=" & UrlEncodedFormat(url.code) & "&">
<cfset postBody = postBody & "client_id=" & UrlEncodedFormat(client_id) & "&">
<cfset postBody = postBody & "client_secret=" & UrlEncodedFormat(client_secret) & "&">
<cfset postBody = postBody & "redirect_uri=" & UrlEncodedFormat(callback) & "&">
<cfset postBody = postBody & "grant_type=authorization_code">
<cfhttp method="post" url="https://accounts.google.com/o/oauth2/token">
    <cfhttpparam name="Content-Type" type="header" value="application/x-www-form-urlencoded">
    <cfhttpparam type="body" value="#postBody#">
</cfhttp>