Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 发布到facebook页面而不在客户端连接到facebook_Php_Facebook - Fatal编程技术网

Php 发布到facebook页面而不在客户端连接到facebook

Php 发布到facebook页面而不在客户端连接到facebook,php,facebook,Php,Facebook,我使用流动代码发布到我的Facebook页面,但正如您所见,该代码将用户重定向到Facebook以获取访问令牌 $facebook=newFacebook(array( 'appId'=>$app_id, 'secret'=>$app_secret, 'cookie'=>true )); $user=$facebook->getUser(); if(($facebook->getUser())==0) { header("Location:{$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页面?

是的,但它需要用户的活动访问令牌,该令牌可以扩展,因为脱机访问不再工作。所以你必须在服务器端存储访问令牌,并从那里访问facebook。因此,您将不重定向用户以获取令牌,而是从数据库中获取令牌,然后将其设置为$facebook object,并像往常一样进行发布。

帖子是否必须看起来来自用户的facebook?用户是否拥有Facebook?否则,您可以从服务器端(代表您、应用程序或页面本身等)获取访问令牌,并发布该令牌(也是服务器端,不要通过网络发送令牌,只发送用户的文本!)。所有帖子看起来都来自同一个页面/应用程序/用户,但至少帖子中的文本来自伊朗


我也在考虑询问用户Facebook用户名和密码以及从服务器登录,但这不仅是非常不传统和不安全的,而且可能也不起作用,因为当用户从完全不同的地理位置登录时,Facebook会产生怀疑。

除非用户使用代理,否则没有办法。您可以始终使用伊朗境外的服务器。我的服务器在伊朗境外。您的意思是,如果没有Facebook的用户参与,用户就无法发布到我的页面?页面和该应用程序是我的,我们以页面管理员的身份发布。为什么用户必须拥有Facebook帐户?如何在服务器端获取访问令牌?