Заказчик просит привязать свой аккаунт фейсбука к сайту так, чтобы все изменения на сайте отмечались на фейсбуке на стене.
Попробовал использовать их API. Код такой:
$post_data = array(
'access_token' => $access,
'link' => 'http://parademodels.com/Niclette',
'picture' => 'http://www.parademodels.com/public/avatars/Niclette/small.jpg',
'name' => 'Niclette at parademodels',
'caption' => 'Some caption text for testing...',
'description' => 'And this is much bigger text then caption. Here I can use several sentenses, but I won\'t'
);
echo '';
var_dump($post_data);
echo '
';
$ch = curl_init('https://graph.facebook.com/149879695076646/feed');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$res = json_decode(curl_exec($ch));
$access_token я получаю так:
$code = $_GET['code'];
$app_id = {id_приложения};
$app_secret = {секретный_ключ};
$my_url = {url};
if (empty($code)) {
$dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" . $app_id;
$dialog_url .= "&redirect_uri=" . urlencode($my_url);
$dialog_url .= "&scope=email,publish_stream";
header("Location: " . $dialog_url);
} else {
$token_url = "https://graph.facebook.com/oauth/access_token?client_id=" . $app_id
. "&redirect_uri=" . urlencode($my_url)
. "&client_secret=" . $app_secret
. "&code=" . $code;
parse_str(file_get_contents($token_url), $parsed);
}
Т.е. я авторизовался на фейсбуке под аккаунтом заказчика. Запустил скрипт и получил $access_token. Затем, скопировав его вручную, вставил в скрипт по внесению записи на стене на фейсбуке. Но действие $access_token составляет около 2 часов. После этого нужно получить новый.
Вариант с авторизацией через фейсбук не катит, т.к. на сайте много разных пользователей.
Нельзя ли делать как-то запрос через Graph API используя как-то связку логин\пароль? Или как еще решить эту задачу?