Google 与 ColdFusion 的登录集成

Google Login Integration with ColdFusion

我正在尝试将 ColdFusion 与 Google+ 集成。 grantType 有问题。首先,我使用 Google 对用户进行了身份验证。然后,当我尝试获取令牌时,它会抛出错误。下面是我的代码:

<cfset code  = URLEncodedFormat('#code#')>
<cfset appId = URLEncodedFormat('#this.appId#')>
<cfset key   = URLEncodedFormat('#this.key#')>
<cfset uri   = URLEncodedFormat('#this.redirectURI#')>
<cfset grant = 'authorization_code'>  
<cfset postBody = "code=#code#"
                & "&client_id=#appId#"
                & "&client_secret=#key#"
                & "&redirect_uri=#uri#"
                & "&grant_type=#grant#">
<cfhttp url = "https://accounts.google.com/o/oauth2/token" method="POST">
    <cfhttpparam type="body"   value="#postBody#">
    <cfhttpparam type="header" name="Conternt-Type" value="application/x-www-form-urlencoded">
</cfhttp>

这是错误:

{ "error" : "invalid_request", "error_description" : "Required parameter is missing: grant_type" }

我在这里做错了什么?我没有看到问题。请帮忙。

我已经关注了这个https://developers.google.com/identity/protocols/OAuth2WebServer

POST有什么具体的原因要自己拼装吗?为了安全起见,试试这个(替换代码片段的所有行):

<cfhttp method="POST" url="https://accounts.google.com/o/oauth2/token">
    <cfhttpparam type="formfield" name="grant_type"     value="authorization_code">
    <cfhttpparam type="formfield" name="redirect_uri"   value="#this.redirectURI#">
    <cfhttpparam type="formfield" name="client_id"      value="#this.appId#">
    <cfhttpparam type="formfield" name="client_secret"  value="#this.key#">
    <cfhttpparam type="formfield" name="code"           value="#code#">
</cfhttp>