Posting to Facebook Page using C# SDK from "offline" app
        Posted  
        
            by James Crowley
        on ASP.net Weblogs
        
        See other posts from ASP.net Weblogs
        
            or by James Crowley
        
        
        
        Published on Thu, 03 Feb 2011 11:59:00 GMT
        Indexed on 
            2011/02/03
            15:26 UTC
        
        
        Read the original article
        Hit count: 525
        
If you want to post to a facebook page using the Facebook Graph API and the Facebook C# SDK, from an "offline" app, there's a few steps you should be aware of.
First, you need to get an access token that your windows service or app can permanently use. You can get this by visiting the following url (all on one line), replacing [ApiKey] with your applications Facebook API key.
http://www.facebook.com/login.php?api_key=[ApiKey]&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=publish_stream,offline_access,manage_pages&return_session=1 &sdk=joey&session_version=3
In the parameters of the URL you get redirected to, this will give you an access key. Note however, that this only gives you an access key to post to your own profile page. Next, you need to get a separate access key to post to the specific page you want to access. To do this, go to
https://graph.facebook.com/[YourUserId]/accounts?access_token=[AccessTokenFromAbove]
You can find your user id in the URL when you click on your profile image. On this page, you will then see a list of page IDs and corresponding access tokens for each facebook page. Using the appropriate pair, you can then use code like this:
var app = new Facebook.FacebookApp(_accessToken); var parameters = new Dictionary{ { "message" , promotionInfo.TagLine }, { "name" , promotionInfo.Title }, { "description" , promotionInfo.Description }, { "picture", promotionInfo.ImageUrl.ToString() }, { "caption" , promotionInfo.TargetUrl.Host }, { "link" , promotionInfo.TargetUrl.ToString() }, { "type" , "link" }, }; app.Post(_targetId + "/feed", parameters); 
And you're done!
© ASP.net Weblogs or respective owner