HTML

alitak fejlesztői blogja

Egyre többet fejlesztek, főleg PHP. Ezen fejlesztésekkel kapcsolatos bejegyzések.

Facebook page post

2011.07.12. 13:50 alitak

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

Szólj hozzá!

Címkék: facebook page post

A bejegyzés trackback címe:

https://alitak.blog.hu/api/trackback/id/tr523060509

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása