Just to share some more information in case others come across this thread, Ben Nadel is a great resource for Cold Fusion demos and knowledge.
He wrote up a very nice blog on Asynchronous CFThread Tags. Only reason I didn’t come across this sooner was because I didn’t know of the terminology to search for.
EDIT:
Below is the code which ended up resolving my issue. I needed to use the CFHTTP (method = POST) with all of the parameters specified. After that, I needed to deserialize the JSON which was resturned by Twitch. Deserializing the JSON allowed the variables to become accessible to ColdFusion functions.
<cftry>
<cfhttp url="https://api.twitch.tv/kraken/oauth2/token" method="POST" throwOnError="no" redirect="no" timeout="10" result="token_result">
<cfhttpparam name="client_id" type="FormField" value="#c_id#">
<cfhttpparam name="client_secret" type="FormField" value="#c_secret#">
<cfhttpparam name="grant_type" type="FormField" value="authorization_code">
<cfhttpparam name="redirect_uri" type="FormField" value="#redirect_uri#">
<cfhttpparam name="code" type="FormField" value="#code#">
</cfhttp>
<cfdump var="#token_result#">
<cfif isJSON(token_result.Filecontent)>
<cfset auth_data = DeserializeJSON(#token_result.Filecontent#)>
<cfdump var="#auth_data#">
<cfelse>
<!--- Enter Error Handeling --->
</cfif>
<cfcatch type="any">
<cfoutput>
#cfcatch.message#
</cfoutput>
</cfcatch>
</cftry>