繁体   English   中英

使用Graph API从公共Facebook页面获取墙上馈送 - 这真的很复杂吗?

[英]Get wall feed from a public Facebook page using Graph API - is it really this complex?

我已经开始阅读向非Facebook用户展示Facebook帖子,这有一些用处,但我不敢相信从Facebook获取公共信息很难。

我想要一个feed的页面是公共的,你不需要登录就可以了。

我是否正确地假设我需要access_token来获取此信息,尝试访问该URL而不会导致OAuth错误。

所以流程应该是这样的(大规模,过于复杂):

  1. 使用用户进行身份验证(如果用户不在Facebook上,该怎么办?)
  2. 一些复杂的OAuth废话 - 只是为了阅读Feed,我甚至不想要一个像按钮或帖子到墙的功能
  3. 使用PHP请求通过用户的access_token获取正确的URL
  4. 渲染Feed

假设用户不在Facebook上,您做什么,使用通用应用程序获取Feed?

  1. 使用我的通用应用程序ID和密码将验证请求硬编码到Facebook
  2. 一些复杂的OAuth废话
  3. 使用应用程序的access_token将PHP请求获取到正确的URL
  4. 渲染Feed
  5. 哦不,auth已经过期,重新验证并捕获这个新的access_token,以便在将来的请求中使用。

这似乎非常复杂,除了Facebook想知道正在发生的一切之外,使用XPath做一个cURL并从公共URL中删除内容会更容易。

对此的任何帮助都会很棒。

谢谢,杰克

编辑

显示此内容的编辑不完全相同。

我有这个使用access_token,但现在它失败了,令牌已经过期,我不能再使用它从公共墙获取信息。

我试图使用其他帖子中提到的方法延长此令牌的到期日期,但这不起作用,并且未到期 - 我们现在在这里,带有无效的令牌而且没有更进一步。

似乎必须批准OAuth请求的手动过程意味着无法以编程方式获取公共页面的提要。

两年后,您可以使用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;
}

我在阅读直接饲料时没有令牌等方面取得了一些成功(使用喜鹊,简单或querypath或类似)。

http://www.facebook.com/feeds/page.php?format=rss20&id= ........ http://www.facebook.com/feeds/page.php?format=atom10&id= .. ......

发现于: http//ahrengot.com/tutorials/facebook-rss-feed/

自从其他答案发布以来, Facebook已经改变了如何检索公共Facebook页面的提要。

看看我的回答/问题 它不是PHP ,但它提供了您需要的URLs和流程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM