Felmerült egy igény, mely szerint ha az admin kirak egy hírt egy weboldalra, akkor az a hír jelenjen meg a Facebook oldalukon is. Elég sok szívás volt vele, ezért most leírom hogyan kell, másnak hátha segítek vele.
Szóval: ahhoz, hogy oldal nevében tudj oldalra postot kirakni, szükség van egy ún. access token-re. Ennek a beszerzése a következőképpen zajlik:
Jelentkezz be Facebook-ra olyan felhasználóval, aki adminja az oldalnak.
Erre legegyszerűbb a fb saját login fbml használata. Fontos, hogy a következő jogosultságokat követeljük meg: offline_access, publish_stream, manage_pages. Ez a következők miatt kell:
- offline_access - ne kelljen bejelentkezni a postoláshoz
- publish_stream - engedélyezze a postolást
- manage_pages - engedélyezze az oldalakhoz való hozzáférést
Miután megadtuk a hozzáférést, sütiben (cookie) kapunk egy access_token értéket. Ezt mentsük ki ideiglenesen egy txt-be, vagy ahova szeretnénk. Hosszútávon nem lesz rá szükség.
A következő lépés az alábbi kód:
$url = 'https://graph.facebook.com/__USER_ID__/accounts?access_token=__ACCESS_TOKEN__'; $response = file_get_contents($url); $decoded_response = json_decode($response); foreach ($decoded_response->data as $value) { if ($value->id == '__PAGE_ID__') { $name = $value->name; $access_token = $value->access_token; } }A postoláshoz a következő kódot kell beilleszteni:
$ch = curl_init(); $headers = array( "Content-type: text/xml;charset=\"utf-8\"", "Accept: text/xml", "Accept-Encoding: *", "Accept-Charset: utf-8;q=0.7,*;q=0.7", "Cache-Control: no-cache", "Pragma: no-cache"); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_URL, "https://graph.facebook.com/__PAGE_ID__/feed"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, 'access_token=__ACCESS_TOKEN__&message=__POST__&name=__NAME__'); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); print_r($output);Itt viszont le kell cserélni a PAGE_ID-t az oldal id-jére, az ACCESS_TOKEN-t a fentebb kapott string-re, a POST-ot a kiírandó szövegre, a NAME pedig az oldal neve. Ha ezzel megvoltunk, akkor lehet futtatni a file, kimegy a post.
Egyéb segítségek: forum.developers.facebook.net/viewtopic.php