
April 10th, 2012, 09:50 AM
|
|
Contributing User
|
|
Join Date: Oct 2007
Posts: 114
Time spent in forums: 11 h 24 m 36 sec
Reputation Power: 0
|
|
|
Post to facebook graph with cfhttp
I have followed the tutorials/documentation on facebook's site and am one step away from publishing to a user's wall/timeline using coldfusion. I have one last step, post automatically with cfhttp. I can't get it to work.
Code:
<!--- This is the page that you call and also use as the redirect_uri... facebook returns code and state in the URL ---> <cfparam name="URL.code" default="" type="string"> <cfparam name="URL.state" default="" type="string"> <cfif #URL.code# EQ ""> <cfparam name="URL.error_reason" default="" type="string"> <cfparam name="URL.error" default="" type="string"> <cfparam name="URL.error_description" default="" type="string"> <cfmail charset="utf-8" type="html" server="mail.mysite.com" from="messages@mysite.com" to="messages@mysite.com" subject="Facebook Authentication Denial"> #SESSION.my_profile_id#: #SESSION.my_profile_username# #URL.error_reason#<br/> #URL.error#<br/> #URL.error_description#<br/> </cfmail> <cfabort> <cfelse> <cfhttp method="get" url="https://graph.facebook.com/oauth/access_token?client_id=myappid&redirect_uri=http://www.mysite.com/dbf/_my-controller/fb_user_code.cfm&client_secret=216792f1a1ddbb568c57624a988028dc&code=#Trim(URL.code)#" result="my_fb_user_token"/> <cfif #my_fb_user_token.filecontent# CONTAINS "access_token="> <cfset new_token = ReplaceNoCase(#my_fb_user_token.filecontent#,"&expires","|","all")> <cfset new_token = REReplaceNoCase(#new_token#,"\|.*$","")> <cfquery name="fb_confusion" datasource="#dsn#" maxrows="1"> SELECT facebook_id FROM my_profile WHERE my_profile_id = '#SESSION.my_profile_id#' </cfquery> <cfoutput>#new_token#</cfoutput> <hr/> <cfhttp method="get" url="https://graph.facebook.com/me?#new_token#" result="my_fb_user"/> <cfoutput>https://graph.facebook.com/#fb_confusion.facebook_id#/feed?#new_token#</cfoutput> <hr/> <cfoutput> <cfhttp url="https://graph.facebook.com/me/mysite:add?group=http://www.mysite.com/dbf/test_group.cfm&#new_token#" result="fb_publish" method="post" multipart="yes"> <cfhttpparam name="appID" value="myappid" encoded="no" type="url"> <cfhttpparam name="access_token" value="#my_fb_user_token.filecontent#" encoded="no" type="url"> <cfhttpparam name="message" value="Test" encoded="no" type="url"> <cfhttpparam name="link" value="http://www.mysite.com" encoded="no" type="url"> <cfhttpparam name="name" value="Test" encoded="no" type="url"> <cfhttpparam name="caption" value="Testing fb api" encoded="no" type="url"> <cfhttpparam name="description" value="Testing to see if this posts" encoded="no" type="url"> </cfhttp> </cfoutput> <cfdump var="#fb_publish.filecontent#"> </cfif> </cfif>
The message returned from the fb_publish dump is:
{"error":{"message":"Invalid OAuth access token.","type":"OAuthException","code":190}}
I know the access token is accurate because I take the outputted code and paste it into the facebook debugger and it works just fine. The issue is with cfhttp post.
|