Webstack
Bejelentkezés

Elfelejtetted a jelszavad?

Nem vagy még tag? Kattints ide és regisztrálj most!

Hogyan postoljunk egy Facebook oldal üzenőfalára oldalként PHP-SDK segítségével

PHP | tomizej  | 2012-11-18 05:09:29

Webfejlesztés során, ha bármilyen weboldalt készítünk nem szabad megfeledkezünk arról, hogy Facebook közösségi modulokat építsünk az oldalba, illetve, hogy létrehozzunk egy Facebook rajongói oldalt. Manapság minden a facebook körül forog, óriási információforrás, amit weboldalainknál kihasználhatunk látogató szerzésre, közösség építésre.
Egy Facebook rajongói oldal likeolása után a felhasználó üzenő falán megjelenik minden post, amit a Fan Pagere tettünk. Fan pagere lehet postolni az oldal nevében, illetve az oldal adminisztrátoraként. Az oldal nevében postolni PHPval kicsit trükkösebb.
A Facebook készített egy PHP fejlesztői csomagot (PHP SDK), ami segítségével ezeket a postolásokat automatizálhatjuk.

Facebook alkalmazás készítés követelményei

Ahhoz, hogy használni tudjuk a PHP SDK-t, lennie kell egy aktív FB alkalmazásunknak, vagy létre kell hoznunk egyet. Ezt megtehetjük a https://developers.facebook.com/apps oldalon. Ha még eddig nem tettük volna, csatlakoznunk kell a developers csoporthoz is, tehát fel kell vennünk az alkalmazást.

Facebook alkalmazás létrehozás

Az alkalmazás létrehozást az új alkalmazás létrehozása menüvel tehetjük meg, itt pár lépés elvégzése után létrejön az alkalmazásunk.

Facebook app

Az alap beállítások fülön meg kell adnunk az app-domain nevet. Ez a webdomain ahol használjuk majd az appot. A Website résznél, pedig meg kell adnunk a SiteUrl-t.
A mentés gomb után gyakorlatilag használhatjuk az appot.

Az appnak van egy App ID és egy App Secret azonosítja. Ezzel lehet hitelesíteni fejlesztéskor, hogy melyik alkalmazásról van szó. A PHP SDK-t csak ennek a 2 valid értéknek a megadása után használhatjuk.

Facebook PHP SDK letöltés

A PHP SDK legfrissebb verzióját a Github-ról lehet letölteni.
https://github.com/facebook/php-sdk

Implementálás PHP SDK-val

Ahhoz, hogy bármilyen akciót kiváltsunk a PHP SDKval, először authentikálnunk kell a megfelelő engedélyekkel!

Az alábbi engedélyekre van szükségünk:

  • publish_stream
  • manage_pages

A manage_pages engedély arra szükséges, hogy megkapjuk az oldal access tokenjét.

//Facebook PHP SDK
require_once '../facebook.php';

$facebook = new Facebook(array(
			'appId' => 'XXXXXXXXXXXXX',
			'secret' => 'XXXXXXXXXXXX',
				//'cookie' => true
		));

//User ID
$user = $facebook->getUser();

//Page ID
$pageId = '111111111111';

if ($user) {
	try {
		$pageInfo = $facebook->api("/{$pageId}?fields=access_token");

		if (!empty($pageInfo['access_token'])) {
			$facebook->setAccessToken($pageInfo["access_token"]);

			//Postolunk az üzenőfalra
			$attachment = array(
				'message' => "Oldal vagyok",
				'name' => "Teszt",
				'caption' => "Teszt caption",
				'link' => "http://google.com",
				'description' => "Leírás",
				'picture' => "http://domainem.hu/kep.jpg",
			);

			$result = $facebook->api("/" . $pageId . "/feed/", 'post', $attachment);
		}
		else {
			$permissions = $facebook->api("/me/permissions");
			if (!array_key_exists('publish_stream', $permissions['data'][0]) ||
					!array_key_exists('manage_pages', $permissions['data'][0])) {
				// Nincsenek meg az engedélyek
				// redirectelünk, a login urlre, ahol kérjük az engedélyeket
				header("Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream, manage_pages")));
			}
		}
	}
	catch (FacebookApiException $e) {
		error_log($e);
		$user = null;
	}
}

A fenti kód gyakorlatilag megoldja a problémát.

  1. Betöltjük a PHP SDK-t.
  2. Példányosítjuk a FaceBook osztályt, a megfelelő APP ID és APP Secrettel.
  3. Lekérjük az APIn keresztül az aktuálisan bejelentkezett Facebbok felhasználót $facebook->getUser();.
  4. Megadjuk az oldal azonosítóját a $pageId változóban.
  5. Lekérjük az oldal access tokenjét
  6. Ha megvannak az engedélyek beállítjuk a tokent és postolhatunk az oldal nevében, ha nincs vissza a login oldalra.

Konklúzió

Automatizált postolás hasznos lehet, hogy a facebook rajongói oldalunk adminisztrálása nélkül tudunk párhuzamosan bejegyzéseket írni az üzenőfalra az oldalunk admin oldalával. Nem kell mind a 2 helyen megtennünk.
Fan page mellett más facebook csoportok üzenőfalára is írhatunk, egyszerre többre is, bár ez csak adminisztrátor nevében lehetséges!

Szerző: tomizej

címkék
Címkék: tutorial, facebook, php,

Hozzászólások

Hozzászóláshoz be kell jelentkezni!

Keress minket Facebookon
Ajánlások