我已经开始阅读
Displaying Facebook posts to non-Facebook users这是有用的,但我不敢相信这是很难从Facebook获得公共饲料.
假设我需要一个access_token来获取这些信息,尝试访问URL而不会导致OAuth错误.
所以流程应该是这样的(大量,过于复杂):
>使用用户验证(如果用户不在Facebook上怎么办?)
>一些复杂的OAuth废话 – 只是为了阅读Feed,我甚至不想要一个像按钮或贴在墙上的功能
>使用用户的access_token,使用PHP请求获取正确的URL
渲染饲料
假设用户不在Facebook上,你做什么,使用通用应用程序获取Feed?
>使用我的通用应用程序的ID和秘密,将身份验证请求硬编码到Facebook
>一些复杂的OAuth废话
>使用应用程序的access_token,使用PHP请求获取正确的URL
渲染饲料
>哦,不,auth已经过期,重新认证并捕获这个新的access_token以供将来的请求使用.
这似乎真的很复杂,除了Facebook想知道一切正在发生的事情之外,没有任何理由,使用XPath更容易做一个cURL和从公共URL中删除内容.
对此的任何帮助将是巨大的.
谢谢,
可靠的人
编辑
显示此的编辑不是完全重复的.
我有一个access_token的工作,但现在它失败了,令牌已经过期,我不能再使用它从公共墙壁获取信息.
我试图使用其他帖子中提到的方法来延长此令牌的到期日期,但是这并没有起作用,而且到期日期还没有延长 – 我们现在在这里,使用无效的令牌,而不会再延续.
两年之后,您可以使用Facebook应用程序(使用PHP和Slim的示例)以编程方式执行此操作:
https://developers.facebook.com/apps/
原文链接:https://www.f2er.com/php/140218.html$base_api="https://graph.facebook.com/"; $client_id="XXXXXX"; $app_secret="XXXXXX"; //get a profile Feed (can be from a page,user,event,group) $app->get('/Feed/:profileid/since/:start_date',function ($profile_id,$start_date) { $start_time=date('m/d/Y h:i:s',$start_date); $request = new FacebookRequest( getSession(),'GET','/'.$profile_id.'/Feed?since='.$start_time ); $response = $request->execute(); $graphObject = $response->getGraphObject(); //do something with $graphObject }); function getSession(){ $session = new FacebookSession(getAccessToken()); return $session; } function getAccessToken(){ global $base_api,$client_id,$app_secret; $url=$base_api."oauth/access_token?client_id=".$client_id."&client_secret=".$app_secret."&grant_type=client_credentials"; $str = file_get_contents($url); $token = str_replace ( "access_token=","",$str ); return $token; }