【问题标题】:How to show facebook feed messages from my site without access_token?如何在没有 access_token 的情况下显示来自我网站的 Facebook 提要消息?
【发布时间】:2012-03-28 15:41:18
【问题描述】:

我有一个 facebook 网站(网站,而不是个人资料墙),并希望在网页上显示消息提要。如果我使用,这已经很好了

https://graph.facebook.com/177610425663218/feed

但是我需要一个 access_token。使用Graph Explorer 我可以生成一个临时令牌。

我知道我可以创建 OAuth,但我不希望我网页的每个访问者都登录 facebook 来查看提要。一定有其他方法...也许使用 PHP 而不是 Javascript?

【问题讨论】:

    标签: php javascript jquery facebook facebook-graph-api


    【解决方案1】:

    https://developers.facebook.com/docs/plugins/ 提供了您可以嵌入的所有插件的列表。但是,如果您想向未登录 fb 的用户显示提要,则此方法不起作用。

    要解决您的问题 - 有一个服务器端脚本可以访问此提要并显示它。如果此提要来自 FB 页面,则您将需要具有“manage_pages”权限的访问令牌。使用它,您可以使用以下 (PHP) 代码获取内容:

    $response=file_get_contents("https://graph.facebook.com/".$id."/feed&access_token=".$facebook_access_token);
    $response_array=json_decode($response,true);
    // $id: Page ID
    

    您还可以通过添加分页参数来自定义此查询,例如since、limit、until 等。有关文档,请参阅https://developers.facebook.com/docs/reference/api/

    这种方法可为您带来以下优势:

    • 您的访问令牌在您的服务器上是安全的,对公众不可见。
    • 即使是未登录的用户也可以看到您的供稿。
    • 您可以自定义 Feed 的外观,因为您可以控制 UI。

    缺点:

    • 需要您编写代码并积极维护一段除了充当代理之外什么都不做的代码。每次 FB 改变它的对象结构时,你都需要改变这段代码。

    【讨论】:

    • 如果你只有一两个页面并且想快速配置东西,你可以去 Graph API Explorer (developers.facebook.com/tools/explorer) 并从那里生成一个。如果您不想使用它,那么您需要一个可以使用 FB.login (developers.facebook.com/docs/reference/javascript/FB.login) 或类似 FB-Authentication 机制从用户那里获取它的应用程序。
    • 谢谢。我已经尝试过 Graph API Explorer,但我得到的令牌只是临时的:“验证访问令牌时出错:会话在 unix 时间过期......”。我需要很长时间的令牌...
    【解决方案2】:

    你可以使用https://www.facebook.com/feeds/page.php?id=<your-page-id>&format=json这会返回一个json对象并且不需要访问令牌。

    您还可以使用不同的格式,例如 xml 和 rss20。

    希望这会有所帮助。

    【讨论】:

    • 这太棒了!你有这个 API 的文档吗?
    【解决方案3】:

    虽然这个问题已经回答了。我希望这可能对其他人有所帮助。

    我一直在为内部 CMS 开发一个插件,该插件需要直接从用户 url 中提取 facebook 提要。这就是我最终的结果。

    $url = 'url_pulled_from_database';
    $url = str_replace('http://www.', 'http://graph.', $url);
    $get_id = file_get_contents($url);
    $get_id = json_decode($get_id, true);   
    $fbID = $get_id['id'];
    
    //THEN CALL THE FUNCTION        
    fb_parse_feed($fbID, $maxnumber);
    

    我不能把 fb_parse_feed 函数归功于它,但你可以在这里找到它 https://gist.github.com/banago/3864515

    一旦实施,只需使用 url,它就可以在任何公共页面上发挥作用。

    【讨论】:

    • 这对我很有帮助。您能否在公共页面上展示如何使用它的示例。说这个页面?以facebook.com/JulianEdelman为例
    【解决方案4】:

    我认为如果没有访问令牌,您将无法做到这一点,但请查看我的回答 here,了解获取和检索您想要的提要的详细步骤。

    【讨论】:

      【解决方案5】:

      在 Windows 8 商店应用程序中执行此操作,这似乎有效

      url = "https://graph.facebook.com/me?fields=feed&access_token=" + fbtoken;

      【讨论】:

      • 这与建议的Shreeni 相同,如果您获得access token,则效果很好,但Nick Lucas 更好,因为它无需令牌即可工作。仍然为您的努力 +1,欢迎来到 Stackoverflow :)
      猜你喜欢
      • 2011-01-15
      • 2012-05-25
      • 2023-04-07
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      相关资源
      最近更新 更多