Postimi automatik i artikujve nga ASP.NET MVC ne Facebook

asp-_net-facebook-loginShpesh me ka ndodhe qe rregullu dicka edhe mos me shenu, tu mendu qe masi e mesova njhere, e boj gjithehere. Mirepo, nuk me ka dale mire asnjehere. Per kete arsye sot vendosa me postu si me publiku prej C# (ne rastin time ASP.NET MVC) direkt me nje nga faqet e juaja ne Facebook.

Skenari im ishte ky: nje sajt i veturave (www.veturaneshitje.com) ku vizitori mundet me fute veturen qe e ka per shitje dhe kjo veture automatikisht me u publiku ne faqen e Facebook (https://www.facebook.com/veturaneshitje). Fillimisht per kete pune perdora Grafiti RSS, nje Facebook App qe mundesojke me ja dhane nje RSS feed, mandej ky postojke ne wall te faqes. Problemi me kete aplikacion ishte se filloj me mi gjeneru linkat gabim (ndoshta edhe une gabim e kon konfiguru), keshtu qe vendosa me publiku direkt prej websajtit ne wall.

Pas google-imit, gjeta disa poste te mira, mirepo e keqja e tyne ishte se krejt kerkojshin qe perdoruesi i cili po poston duhet me u kyc ne FB dhe me i pranu kushtet e FB App-it. Kjo nuk ishte zgjidhja per mua, sepse qellimin e kisha qe me i perdore kredencialet e mia ne kod, qe me mujt me postu ne emer timin dhe jo me detyru perdoruesin me u marr me hapa te tjere.

Dy dite te mira mi ka honger ky problem, me dofar access tokena, app tokena, jo short time, jo long time… hajmedet haj. Per me i ra shkurt, keta jane hapat si me bo qe permes nje TOKEN me postu ne Facebook Page.

Fillimisht shkoni e regjistroni nje app ne Facebook https://developers.facebook.com/apps ketu e keni mundesine me ja bo Create App. Ajo cka mbushni ketu vertete duhet te jete minimale, sepse nuk ka nevoje per shume detaje, pra mbushni vetem keto fusha: App Name, Contact Email dhe tek sektori Website with Facebook Login, Site URL (nese jeni duke testu lokalisht, atehere e shenoni http://localhost:%5Bporti%5D, perndryshe e shenoni domainin e webit).

Hapi tjeter eshte me shku tek Graph API Explorer, ku e keni mundesin me e zgjedhe aplikacionin u juaj (lart djathtas, by default e keni Graph API Explorer), masi qe e keni zgjedhe aplikacionin e juaj shtypni ne Get Access Token, ketu ju shfaqet nje permission popup, shkoni tek tabi Extended Perissions edhe zgjedhni keto permissions: publish_stream, manage_pages, status_update (ne poste te ndryshme mund te vereni rekomandime te ndryshme, keto jane qe me kane dheze mua). Me kete veprim ju e keni autorizu aplikacionin tek profili i juaj, dhe njeri prej permissions ishte edhe mundesia me i menaxhu faqet e juaja.

Tani ne hapin me radhe, ju duhet ta asocioni aplikacionin e juaj me faqen e juaj duke e ekzekutuar kete url ne browser:
http://facebook.com/add.php?api_key=*YOUR_APP_ID*&pages=1&page=*YOUR_PAGE_ID*

Mandej vazhdoni ne kete link, ku duhet te ju listohet aplikacioni(et) se bashku me User Token dhe App Token
https://developers.facebook.com/tools/access_token/
Ashtu sic edhe ceket ne dokumentacion, User Tokeni nderron sikur edhe sessioni i userit, keshtu qe ky mundet me kry pune per pak minuat (60), pastaj bon expired dhe pamundesohet postimi ne FB.
Per me testu User Token qe gjendet tek aplikacioni, shkoni ne kete link:
https://graph.facebook.com/me.kqiku/accounts/?access_token=*YOUR_USER_TOKEN* rezultati eshte nje fajll i strukturuar JSON (mos e provoni ne IE se ne vend se me shfaq fajllin ju lyp me hap, nese e hapni hapet ose VS ose Web Matrix #hajmedetperIE) i cili permban kategorine, emrin, access_token.. etj. Ky access_token eshte (sic quhet ne FB) short-lived access token dhe neve na duhet me e konvertu ne long-lived. Menyra per me konvertu eshte kjo:
https://graph.facebook.com/oauth/access_token?client_id=_APP_ID_&client_secret=_APP_SECRET_&grant_type=fb_exchange_token&fb_exchange_token=access_token_qe_e_gjenerum_ma_nalt
Ketu ju kthehet nje token qe ju duhet ta ruani, sepse me kete do te na mundesohet me postu ne faqe. Kujdes gjate marrjes se ketij tokeni, sepse ne fund e ka nje parameter, pra ate parameter mos e merrni, por merreni vetem tokenin.

Per shkak se eshte access_token i faqes, ky nuk bon expired, ndryshe nga user access tokens qe max munden me jetu 60 dite.

Tash krejt ne fund, na ka mbete qe me testu nese tokeni i gjeneruar nuk bon expiret. FB me krejt dhimten qe e ka, ka edhe vegla te mira, si psh kjo per testim te tokenave
https://developers.facebook.com/tools/debug/access_token?q=
Ketu ne textboxin e zbrazet, bone paste tokenin dhe ishit dashte ta shihni tek kolona Expires vleren Never. Super pra!

Krejt kjo qe folem, ishte thjeshte me u marr me FB, hapat tone vazhdojne ne c# ku gjerat jane sikur me pi jogrut pas nje kafshate shume te nxehte te burekut. Vazhdojme lehtesisht me c# duke i ndjekur hapat e me poshtem.

Ata qe kane VS2012 e tutje (ata qe skan, skom cka me ju bo) shkoni tek NuGet Packages dhe kerkoni online Facebook SDK for .NET (mjafton me shenu Facebook dhe ju del ne liste e para) dhe instalone.

Masi qe keni kry instalimin, shkoni tek kontrolleri ose vendi ku ju doni ta perdorni postimin, ne rastin tim tek Car Controller te metoda Create (normal tek POST). Ketu mund ta boni paste code-in ne vijim ose ta dekalroni nje metode private brenda klases (si kam vepruar une):

//Facebook Post
private void PostToFacebook(string message, string description, string picture, string link, string caption, string type)
{
string app_id = "APP_ID";
string app_secret = "APP_SECRET_ID";
string access_token = "ACCESS_TOKEN";
var client = new FacebookClient(access_token);
client.Post("/YOUR_PAGE_ID/feed", new { description = description, picture = picture, link = link, caption = caption, type = type });
}

Mos harroni ta importoni namespace Facebook.

Perndryshe, kjo ishte e tera dhe nese keni shku sipas hapave, cdo gje do te duhej te punonte. Perndryshe, ne nderkohe Facebook mund te nderron dicka ne Open Graph API prandaj duhet qe te percjellet edhe dokumentacioni i Facebook.

Linqe qe me kane ndihmuar i keni ketu:
http://www.markhagan.me/Samples/Grant-Access-And-Post-As-Facebook-User-ASPNet
http://stackoverflow.com/questions/10183625/extending-facebook-page-access-token/13477999#13477999
http://findmyfacebookid.com/

Besoj qe perpjekjet disa ditore, ky post te ua shendrroj ne minutore 🙂

P.S Toknin e gjeneruar dhe App Secret ID mos ua tregoni te tjereve.

Faleminderit per lexim!

Advertisements

2 thoughts on “Postimi automatik i artikujve nga ASP.NET MVC ne Facebook

  1. Faleminderit qe shperndajte kete metode; gjithmone kam perdorur dlvr.it si sherbim per te postuar ne profilet dhe fan pages te klienteve dhe ka qene mjaft efikas por kjo duket metode shume me e mire pasi qe mund ta pershtatesh edhe me mire se ajo aktuale!
    Suksese me projektin 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s