Skip to main content

Authorization with Facebook Using Graph API and Coldfusion

Below is an alternative Coldfusion Facebook Authorization method to the earlier one that was published yesterday. This method is simpler and does not require much code.


You should create two file, one that will redirect the user of your application to Facebook API to get authenticated and then authorized, the first file is below:

    <!--- Your FB application IDS --->
    <cfset api_key = "xxxxxxx"/>
    <cfset secret_key = "xxxxxx"/>
    <cfset appID = "xxxxxx"/>
    <!--- Redirect to get authonticated and authrorized from facebook, in the redirect_uri you should write the url of your website where you want the user to be redirected after authroization --->
   <cflocation url="https://graph.facebook.com/oauth/authorize?client_id=#appID#&redirect_uri=http://www.sms4all.info/fb/login1.cfm" addtoken="no">


The second coldfusion file is the main page where the user will be redirected to, as an example I only retrieved the friends list of the authorized user:


     <cfset api_key = "xxxxxx"/>
    <cfset secret_key = "xxxxxx"/>
    <cfset appID = "xxxxx"/>
    <!--- Fetching the below URL will return to the application the access token which allows your application to access the users information --->

    <cfhttp url="https://graph.facebook.com/oauth/access_token" result="login1">
    <cfhttpparam name="client_id" value="#appID#" encoded="no" type="url">
    <cfhttpparam name="redirect_uri" value="http://www.sms4all.info/fb/login1.cfm" encoded="no" type="url">
    <cfhttpparam name="client_secret" value="#secret_key#" encoded="no" type="url">
    <cfhttpparam name="code" value="#url.code#" encoded="no" type="url">
    </cfhttp>
    <cfset accesstoken=login1.filecontent>
    <!--- Get FB User Friends --->
    <cfhttp url="https://graph.facebook.com/me/friends?#accesstoken#" result="friends"/>
    <cfif IsJSON(friends.filecontent)>
        <cfset friendsl=DeserializeJSON(friends.filecontent)>
        <cfdump var="#friendsl#">
    </cfif>

Comments

  1. Works great!! Thanks so much for sharing.

    ReplyDelete
  2. Thanks, it works great!!

    ReplyDelete
  3. Mustafa, Thank you for this clear and easy to understand tutorial! :)

    ReplyDelete
  4. Silly question but I've been trying for a few hours. How do you output the JSON without dumping it so that it can be formatted with HTML .

    ReplyDelete
  5. Dear Omar, It is so easy you need to deserialize the JSON variable, then dump it to see the structure and if it has arrays. Then directly you may get the result easily by calling the struct and its sub-structs or arrays.

    ReplyDelete
  6. Can I request the user's email with this method?

    ReplyDelete
    Replies
    1. Please read the below post:
      http://blog.abusalah.info/2010/08/coldfusion-facebook-graph-api-publish.html

      and a list of permissions on the below post:
      https://developers.facebook.com/docs/reference/login/#permissions

      Delete

Post a Comment

Popular posts from this blog

Error: Write to Disk Access Denied - Troubleshooting - BitTorrent

I have downloaded Bit Torrent software and when trying to download I got an error after few seconds saying:

Error: Write to Disk Access Denied
Solving this problem is so simple:
Shut down BitTorrent program.
Go to Start and in the small search box on top of windows start button start typing Bittorrent and the program will show, right click with the mouse on the icon and Run as Administrator.
All ur problems are sorted out now and you can enjoy downloading...
Good Luck.

Importing SSL certs to Coldfusion Railo's keystore

If you are having the below error:
Railo 3.3.4.003 Error (javax.net.ssl.SSLHandshakeException)Messagesun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetCausejavax.net.ssl.SSLHandshakeException

This means you are trying to invoke an https webservice. to invoke an SSL webserver you need to import the certificate into Railo by using keytool command. Below are the steps on how to do this:

1- use fire fox to open the webservice and click on the padlock as shown on the below image:

2-Click on more information as below:
 3- Click on View Certificate as below:
4-Click on details as below:
 5- Now export the certificate and save it to your computer with .cer extension.

6- Search in railo folder for the keytool command location, in my case it was under railo\jdk\bin

7-  Search in railo folder for the cacerts location, in my case it was under railo\lib\railo-s…

Publish to Wordpress using JSON API plugin and Coldfusion

I was using Postie to automatically publish to wordpress blog. I was searching a better method of publishing using soap api or json api. I found an excellent json plugin that can be used to publish posts and comments to wordpress.
Please follow the below step by step, this code will let you publish automatically for froma different interface to wordpress rather than using postie or email.

Step one: Install json plugin, enable the plugin and then go to settings > JSON API and  activate post

Step two: you have to modify the file: yourwordpressdirectory/wp-content/plugins/json-api/controllers/post.php

Please replace the file content with the below or add the missing Authenticate method. This method is necessary to authenticate a user to wordpress to be able to post content without a valid session.


<?php /* Controller name: Posts Controller description: Data manipulation methods for posts */ classJSON_API_Posts_Controller{ publicfunctioncreate_post(){ global$json_api; $this->authenticate()…