Я не уверен в том, как именно вы пытаетесь аутентифицироваться. Возможно, вы выполняете запрос таким образом, но метод, который я использую, описан здесь: http://developers.facebook.com/docs/authentication/
То есть сначала вы перенаправляете пользователя на страницу Facebook, чтобы заставить его принять разрешения. Как только он соглашается, он перенаправляется на указанный вами URL с аргументом code=###
get, который вам необходим для выполнения запроса на стороне сервера, чтобы получить нужный вам access_token ..
Пример URL перенаправления:
$my_url = 'http://www.example.com';
"http://www.facebook.com/dialog/oauth?client_id=". $app_id ."&redirect_uri=". urlencode($my_url);
Затем, когда пользователь нажимает кнопку «Принять», он перенаправляется, например, на
.
http://www.example.com?code=ABCDEF
Затем, на стороне сервера, вам нужно получить access_token, который делает такой вызов:
"https://graph.facebook.com/oauth/access_token?"
. "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
. "&client_secret=" . $app_secret . "&code=" . $code;
Затем дважды проверьте возвращенный текст этого вызова и попробуйте получить
"https://graph.facebook.com/me?access_token=". $access_token;
(Вы также можете проверить это вручную)
EDIT
Кроме того, вам, вероятно, потребуются дополнительные разрешения от пользователя для публикации в его потоке. Итак, запросите разрешения, добавив scope=publish_stream
get к первому (авторизация пользователя) URL.