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: 445
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