php – 使用Graph API从公开的Facebook页面获取壁纸 – 这真的是复杂的吗?
|
我已经开始阅读 Displaying Facebook posts to non-Facebook users这是有用的,但我不敢相信这是很难从Facebook获得公共饲料. 我想要一个Feed的页面是公开的,您不需要登录即可. 假设我需要一个access_token来获取这些信息,尝试访问URL而不会导致OAuth错误. 所以流程应该是这样的(大量,过于复杂): >使用用户验证(如果用户不在Facebook上怎么办?) 假设用户不在Facebook上,你做什么,使用通用应用程序获取Feed? >使用我的通用应用程序的ID和秘密,将身份验证请求硬编码到Facebook 这似乎真的很复杂,除了Facebook想知道一切正在发生的事情之外,没有任何理由,使用XPath更容易做一个cURL和从公共URL中删除内容. 对此的任何帮助将是巨大的. 谢谢, 编辑 显示此的编辑不是完全重复的. 我有一个access_token的工作,但现在它失败了,令牌已经过期,我不能再使用它从公共墙壁获取信息. 我试图使用其他帖子中提到的方法来延长此令牌的到期日期,但是这并没有起作用,而且到期日期还没有延长 – 我们现在在这里,使用无效的令牌,而不会再延续. 看来,必须批准OAuth请求的手动过程意味着无法以编程方式获取公共页面的Feed. 两年之后,您可以使用Facebook应用程序(使用PHP和Slim的示例)以编程方式执行此操作: https://developers.facebook.com/apps/$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;
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
