Przede wszystkim proszę się na mnie nie denerwować że odświeżam stary temat, ale wyszukiwarka podpowiedziała mi tylko ten, a nowego tematu szkoda/nie warto publikować.
Powyższy kod z postu u mnie nie działa. Wyświetla się: "The state does not match. You may be a victim of CSRF".
Mój kod poniżej z sukcesem umieszcza post na mojej tablicy - fajnie... ale... Nie umiem podpiąć tego pod link zaloguj się i opublikuj . Wchodzę na stronę i od razu wyświetla się strona Facebooka z prośbą mojej aplikacji do akceptacji. A więc... Ktoś ma stronę. Klika w link, akceptuje poprzez Facebooka moją aplikację, ona postuje na jego tablicy i strona przeładowuje się z nową zawartością -np. tresc.html. Mam z tym problem. Jednakże zastanawia mnie inna kwestia samego rozwiązania tego kodu. Ten kodzik na Fb najpierw prosi mnie o uprawnienia do akceptacji mojej aplikacji a potem pyta o to czy użytkownik wyraża chęć opublikowania postu na jego tablicy (bez samej treści postu). Widziałem nie raz strony typu zaloguj aby zobaczyć zawartość i tak naprawdę to tam są wymienione w jednym okienku uprawnienia na które się zgadzamy np: lista zjnaomych, publikowanie postów itp... raz akceptujemy i spokój. Tu użytkownik może się jeszcze rozmyślić czy chce zapostować na swojej tablicy. Coś się zmieniło czy mój kod jest niewłaściwy? Szukałem na stronach zagranicznych, ale kody są tak różne że ciężko było mi coś posklejać, a siedzę całą noc.
<?php
require 'src/facebook.php';
define('FACEBOOK_APP_ID',"XXXXXXXXXX");
define('FACEBOOK_SECRET',"xxxxxxxxx");
$user = null;
$facebook = new Facebook(array(
'appId' => FACEBOOK_APP_ID,
'secret' => FACEBOOK_SECRET,
'cookie' => true
));
$user = $facebook->getUser(); // Get the UID of the connected user, or 0 if the Facebook user is not connected.
if($user == 0) {
/**
* Get a Login URL for use with redirects. By default, full page redirect is
* assumed. If you are using the generated URL with a window.open() call in
* JavaScript, you can pass in display=popup as part of the $params.
*
* The parameters:
* - redirect_uri: the url to go to after a successful login
* - scope: comma separated list of requested extended perms
*/
$login_url = $facebook->getLoginUrl($params = array('scope' => "publish_stream"));
echo ("<script> top.location.href='".$login_url."'</script>");
} else {
try {
$params = array(
'message' => "Hurray! This works :)",
'name' => "This is my title",
'caption' => "My Caption",
'description' => "Some Description...",
'link' => "http://www.strona.pl",
'picture' => "http://www.strona.pl/75x75.png",
);
$post = $facebook->api("/$user/feed","POST",$params);
echo "Your post was successfully posted to UID: $user";
}
catch (FacebookApiException $e) {
$result = $e->getResult();
}
}
?>