Помимо токена авторизации, вы можете попробовать добавить error_reporting в file_get_contents:
$val = stream_context_create(array('error_reporting' => TRUE));
и используйте $val
в третьем параметре file_get_contents.
Почему? Потому что тогда вы можете повторить результат и понять, почему Facebook говорит «нет». Когда происходит ошибка с API, Facebook отправляет ответ об ошибке обратно на ваш сервер.
Затем file_get_contents по умолчанию предполагает, что ваш запрос вообще не работает.