Я постараюсь не делать это слишком затянутым. По сути, с Open Graph, если пользователю «нравится» веб-страница (в моем примере, блог), вы можете настроить ее так, чтобы при добавлении новой публикации в их ленте новостей отображалась запись, связанная с ней.
О том, как это якобы делается, см. здесь: https://developers.facebook.com/blog/post/465/
По сути, вы добавляете метатеги OG на свой сайт, создаете приложение, ссылаетесь на app_id в тегах OG, например, на страницу, и затем создается своего рода невидимая страница facebook, которую могут видеть только администраторы — пользователи попадают на сайт вместо этого. Важно то, что, поскольку людям нравится эта страница, вы можете писать сообщения с этой страницы, и пользователи это увидят.
Странно то, что это работало для меня вчера, но внезапно перестало работать. Ничего не изменилось, просто перестало работать.
Итак, я создал блог, добавил правильные метатеги OG, создал приложение, добавил тег fb:app_id в блог, содержащий идентификатор приложения.
Код в примере можно разделить на две части. Во-первых, получение токена доступа:
$access_token_url = "https://graph.facebook.com/oauth/access_token";
$parameters = "grant_type=client_credentials&client_id=" . $app_id . "&client_secret=" . $app_secret;
$access_token = file_get_contents($access_token_url . "?" . $parameters);
Это отлично работает, он возвращает токен доступа. Однако вторая часть примера, публикация со страницы facebook не работает.
$apprequest_url = "https://graph.facebook.com/feed";
$parameters = "?" . $access_token . "&message=" . $mymessage . "&id=" . urlencode($ogurl) . "&method=post";
$myurl = $apprequest_url . $parameters;
$result = file_get_contents($myurl);
Я получаю сообщение об ошибке: (# 200) Пользователь не разрешил приложению выполнять это действие.
Facebook изменил свой API за последние 24 часа или что-то в этом роде?
Любая помощь будет высоко оценена, так как это сводит меня с ума!
Ура Пит