2012-03-27 90 views
0

我使用流动代码发布到我的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?

+0

除非用户使用代理,否则没有办法。 – F21 2012-03-27 09:04:52

+0

您可以随时在伊朗境外使用服务器。 – Shomz 2012-03-27 09:06:25

+0

我的服务器在伊朗境外。 – Hamid 2012-03-27 09:10:04

回答

0

是的,但它需要用户的活动访问令牌,因为offline_access不再有效,所以可以扩展它。所以你必须在服务器端存储访问令牌,并从那里访问Facebook。因此,不是将用户重定向到令牌,而是将其从数据库中获取,然后将其设置为setAccessToken()的$ facebook对象并照常发布

0

该帖子是否似乎来自用户的Facebook?用户甚至是否有 Facebook?否则,你可能会得到一个访问令牌服务器端(代表你,或者应用程序或页面本身等)并发布该服务器端(也是服务器端,不要通过线路发送令牌,只有用户的文本!)。所有帖子看起来都来自相同的页面/应用/用户,但至少帖子内的文字来自伊朗。

我也在考虑询问用户的Facebook用户名和密码以及来自服务器的登录信息,但这不仅非常非常规且不安全,它也可能不起作用,因为Facebook在用户登录时将会产生怀疑来自完全不同的地理位置。

+0

页面和应用程序是我的,我们以页面管理员的身份发布。为什么用户需要Facebook帐户? 我如何获得访问令牌服务器端? – Hamid 2012-03-27 09:33:32

+0

你可以申请我的代码吗? – Hamid 2012-03-27 09:39:13