Публикация на странице facebook без подключения к Facebook на стороне клиента
Я использую текущий код для публикации на своей странице в Facebook, но этот код перенаправляет пользователя на Facebook для загрузки токена доступа, как вы можете видеть.
$facebook=newFacebook(array(
'appId'=>$app_id,
'secret'=>$app_secret,
'cookie'=>true
));
$user=$facebook->getUser();
if(($facebook->getUser())==0)
{
header("Location:{$facebook->getLoginUrl(array('req_perms'=>'user_status,publish_stream,user_photos,offline_access,manage_pages'))}");
exit();
}
else{
$accounts_list=$facebook->api('/me/accounts');
}
foreach($accounts_list['data']as$account){
if($account['id']==123456789){
$access_token=$account['access_token'];
}
}
$attachment['link']='article-url';
$facebook->api('/160145120705699/feed','POST',$attachment);
Проблема в том, что Facebook был запрещен в Иране. Есть ли другой способ публикации на странице Facebook без подключения к Facebook на стороне клиента?
2 ответа
Должно ли сообщение появиться на Facebook пользователя? У пользователя даже есть Facebook? В противном случае вы можете получить серверную часть токена доступа (представляющую вас, или приложение, или саму страницу и т. Д.) И опубликовать ее (также на стороне сервера, не отправляйте токен по проводам, только текст пользователя!). Все сообщения будут появляться с одной страницы / приложения / пользователя, но, по крайней мере, текст внутри сообщения поступает из Ирана.
Я также думал о том, чтобы спросить пользователей имя пользователя, пароль и пароль Facebook с сервера, но это не только очень нетрадиционно и небезопасно, но и, вероятно, не сработает, поскольку Facebook будет подозрительным, когда пользователь входит в систему с совершенно другого географическое положение.
Да, но для этого требуется активный маркер доступа пользователя, который может быть расширен, поскольку offline_access больше не работает. Таким образом, вы должны хранить токен доступа на стороне сервера, а также иметь доступ к Facebook оттуда. Поэтому вместо того, чтобы перенаправлять пользователя на получение токена, вы получите его из базы данных, а затем установите для него объект $facebook с помощью setAccessToken() и выполните публикацию в обычном режиме.