Simple 5 Steps to publish on a facebook wall using DotNet C#/ cSharp

There are many Libraries available for C# and Dotnet to publish on facebook.

According to facebook Wiki posting on a wall is very confusing and very difficult to write a program to publish on a wall.

I spent around 2 weeks reading many articles and many documents, Wiki on facebook but in vein and tried many ways and finally I got one workable model. Below are 5 simple steps to publish on a Facebook wall.

Step1: Login to Facebook

First login to Facebook and goto the url http://www.facebook.com/developers/ then

Click on “+ Set Up New Application” button to start creating the application as shown below.

start application

Provide the application name, click agree for facebook terms and click on “Create Application” button.

Fill in application Name

create app step1

Now Application is created for you. Just copy the Application API Key, Application Secret and Application ID details which will be used to write the application code.

application page

Now goto Canvas link and enter any url.

canvaspage

Next goto Connect URL link and enter the same url.

connecturl

Then click on Save. That’s it we have created a facebook application with an Iframe.

Now Copy Application API Key, Application Secret and Application ID details which will be used to write the application code.

Now download any of the available libraries on facebook http://wiki.developers.facebook.com/index.php/User:ASP.NET

(OR)

Microsoft SDK for Facebook Platform, which supports Facebook Connect, FBML and IFrame canvas page applications, and ASP.NET MVC. For issues and discussions about the SDK see the project on Codeplex.

Step2: Generate One Time Session key

How to generate One Time Session key:

Run below URL to get temporary token for the selected user by logging into Facebook.

https://login.facebook.com/code_gen.php?api_key=API_KEY&v=1.0

Note: Please replace “API_KEY” with your application API key from above page.

Then we will get a temporary token key.

allowaccess

generatemylogin info

savemyinfo

This is one time token key that we can use to generate a permanent session key. Careful! Don’t try to execute this programs many times

Step3: Generate one time session key

Below is the sample code to generate one time session key.

For example, the full URL for logging in a user could be:

http://www.facebook.com/login.php?api_key=YOURAPIKEY&connect_display=popup&v=1.0&next=http://www.facebook.com/connect/login_success.html&cancel_url=http://www.facebook.com/connect/login_failure.html&fbconnect=true&return_session=true&session_key_only=true&req_perms=read_stream,publish_stream,offline_access

If the user is redirected to the URL specified by the next parameter, then Facebook grants your application a session. This session is appended to the URL as a JSON-decodable object of the form:

&session={“session_key”:”SESSIONKEY”, “uid”:USERID, “expires”:0 || UNIXTIME, “secret”:”SESSIONSECRET”}

In continuing with the above example, the redirect for a successful login would be:

http://www.facebook.com/connect/login_success.html?session=%7B%22session_key%22%3A%223.kxhAu6W0qo_bLGjmdWrgfw__.86400.1243443600-688626964%22%2C%22uid%22%3A%22688626964%22%2C%22expires%22%3A1243443600%2C%22secret%22%3A%220NVNMxpO6jVyDcVCvVv_PA__%22%2C%22sig%22%3A%22ac1c0c77c137567389defea70481b7aa%22%7D

If the user grants your application the offline_access extended permission, 0 gets returned for expires and the session never expires unless the user removes the application. In this case, you should store the session key so the user doesn’t have to log in the next time he or she launches your application.

Once the browser has been redirected successfully and you have your session information, you should automatically close the browser window.
Note: The above code will execute only once. We should note down the above session key, This will be used to auto login into the application.

If you don’t save these session key values you should generate other token key to create one time session key.


Step4:

Giving Permission to your application to publish on facebook wall. To give permission just replace the your API key in below URL and execute in browser.

http://www.facebook.com/login.php?api_key=APIKEYXxxxxxxxxxxxxxxxxx&connect_display=popup&v=1.0&next=http://www.facebook.com/connect/login_success.html&cancel_url=http://www.facebook.com/connect/login_failure.html&fbconnect=true&return_session=true&req_perms=read_stream,publish_stream,offline_access

Then you must see the below 3 Screens

If you don’t see the below then your call back URL or Canvas URL must be incorrect, please check again your application settings and execute the URL again.

allowpermission

allowpublishing

Then on final page, you will see a success message. That’s it you have given permission for read_stream,publish_stream and offline_access.

Step5: Publishing the message with Image and link on Facebook Wall using cSharp/ C#

Publishing a Post With Image and Action Link in C# using facebook developer toolkit v2

C# Code to create facebook object with onetime session key and publishing the message on Facebook Wall.

public void Post(facebook.API fbAPI, string appLink)
{
 string response = fbAPI.stream.publish( "publish steven on facebook.",
new attachment() {
name = "I am a good guy !", href = appLink, caption = "{*actor*} Steven Publish on facebook wall",
description = "Helping other people, I became a new good guy.", properties = null,
 media = new List<attachment_media>() { new attachment_media_image()
{ src = "http://blog.theunical.com/wp-content/uploads/2009/11/start-application.jpg", href = appLink } } },
new List<action_link>() { new action_link() { text = "Become a good guy",
 href = appLink } }, null, 0);
}

Now you will see the post on wall Great.

published on facebook

So thrilling isn’t we can also publish photos videos on wall.

http://wiki.developers.facebook.com/index.php/Stream.publish

have a great day

— Steven

Please don’t copy this content to any site. This is fully protected by TheUnical Technologies

37 thoughts on “Simple 5 Steps to publish on a facebook wall using DotNet C#/ cSharp”

  1. I have gone through the steps you have given and also I can see the pop-up, but can’t see the result[Content, image and text].

  2. I have gone through the steps you have given and also I can see the pop-up, but can’t see the result.

  3. Hi, great tutorial. Although, having trouble at step 4, I don’t see the 3 screens, I only get a “Success” message. I imagine it’s the callback or canvas URL like you say, but could you elaborate here. You say above, it can be any URL. Surely there is some sort of stipulation?

  4. Can you please show the code you have to have to initialize a session before calling the post method.

    just like you did on the php sample.

    appreciate your help.

  5. I can’t put it working, i receivce the error “Invalid Signature” all the time.

    I Call post method on this way Post(new API(), “http://www.xxxx.com”)

    Thanks

  6. What do I have to pass as the API. I am getting “Session Key invalid or no longer valid.”

  7. hi
    this application is great…and working properly…
    but i need a application or any function in facebook api, by which i fetch user’s wall message…..please reply if u have any suggestion …its urgent.
    thank u..

  8. Hi ..
    Great work..
    It is simple but very helpful.
    but like Nidhi, I want to fetch all the information like friend list,comments, Wall messages and some other information on my website. Is anyone there who can help me out on this problem..? Its really urgent..

  9. hi Steven your application is really very great and useful.
    But I cant able to use your Step 5.. get errors in my page..
    May be i am using wrong,
    So can u give one sample Dotnet application.

  10. Hi,

    Thanks for sharing such a wonderful instruction.

    I followed your instructions to get offline access to users facebook wall. It worked like a charm.

    However since about a month, new users cannot provide offline_access or publish_stream access to the application. It returns
    “&error_code=1&error_msg=Security+check+failed”.

    The URL I’m using to get offline access is “http://www.facebook.com/login.php?api_key={API_KEY}&connect_display=popup&v=1.0&next={URL}&cancel_url={URL}&fbconnect=true&return_session=true&session_key_only=true&req_perms=publish_stream,offline_access”

    I’ve reported it as a bug in Facebook’s bugzilla but with no result.

    I believe that you’ll be able to help me resolve this issue.

    Thanks,

    Sudeep

  11. Thanks for posting this use full information.
    Initially it is showing some problems like , need userid and session id … but I rectified those… Thanks for showing some path to rectify this problem

  12. on this line:
    public void Post(facebook.API fbAPI, string appLink)
    i’m getting error:
    The type or namespace name ‘facebook’ could not be found
    I’ve imported all namespaces, where i’m missing.

  13. i am stuck at
    Step2: Generate One Time Session key

    i always get “An error occured, try again later” about last three days.Looks like This manual is expired. need update.

  14. i need my application to post aytomatically to one of my fanpages from the appname or fanpage name, but not from my account , how can i do this?

  15. Thanks steven, but i manage to publish on the page wall, but its always from me not from the app.
    I’m using c # so i can’t map that php code to c# , but m using facebookApp instance .post(pageid/feed)
    And i don’t know this belong to what api, as i got lost w fb :), but i know it’s worked very well w me when publishing from the app on friends walls using the offline access token but i cant get it to post from the APP to the Page 🙁

  16. Error : The type or namespace name ‘API’ does not exist in the namespace ‘Facebook’ (are you missing an assembly reference?)

    Sir i m getting this error, done all the hard work but got stuck here, Please help me out

  17. can anyone tell me to where to put this one-time code in my asp.net project for developing fb application for get user notications..
    Thanks in advance ..help me

Leave a Reply

Your email address will not be published. Required fields are marked *

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Anti-spam image