【问题标题】:Getting private posts from my Facebook wall从我的 Facebook 墙上获取私人帖子
【发布时间】:2014-03-13 15:57:17
【问题描述】:

首先:我用谷歌搜索并尝试完成一天,但只跑圈子。 在谷歌搜索我的问题时,我得到了很多论坛帖子和文章,它们的描述方式似乎与我描述我的问题的方式相同。但他们的解决方案是另一种方式。

所以我真正想做的很简单:

我在 Facebook 上的大多数状态帖子都是私密的,仅供盯着看的朋友看,但其中一些帖子会发给我所有的朋友,因为它们是一些完全不敏感的模糊博客帖子,所以我不在乎公众是否会看到他们。

嗯。我有一个自写的 PHP 主页,我想打印一些我写在我的 Facebook 墙上的帖子。 这些帖子在 Facebook 上不公开,但应在我的主页上打印(以过滤形式)。

就是这样。我无法让它工作(获取帖子)。

我尝试了 api explorer (fb-dev-tool) 来查看访问令牌是如何工作的,并且只是尝试 使用生成的令牌。工作正常...一个小时,直到令牌过期...

所以我发现博客文章告诉我创建一个私人 Facebook 应用程序。

我这样做了,但是这个应用程序只允许读取我的个人资料公共数据...诸如发布到公共墙上(其他人或公司)或公众喜欢的内容...

我现在什至不知道创建应用程序是否适合我的目的,但用户访问令牌(这似乎是解决我的问题的正确点)似乎总是在大约一小时后过期。

因此,如果使用应用程序是正确的方式,我需要知道如何将我的个人资料与此(自己的)应用程序关联或授予访问私人墙帖子的权限。

大多数解决方案似乎都涉及正在查看使用 api 的页面的用户来完成诸如“给我看你墙上的帖子!”之类的操作。或者其他的东西。但这当然不是我需要的。出于我的目的,访问者甚至不需要拥有 Facebook 帐户。

[...]

我尝试了什么:

  • 我尝试了 api exlorer 来了解这些东西是如何工作的。我是说。甚至 api explorer 也是一个应用程序(由 facebook 编写),可以轻松访问我的私人数据
  • 我尝试使用 api explorer 生成的密钥 -> 它们过期了
  • 我尝试使用官方的 PHP facebook api:

    $facebook = 新的 Facebook(数组( 'appId' => 'myAppId', '秘密' => '我的秘密' ));

    $foo = $facebook->api('/myprofileid/posts'); // -> 只获取公共的东西

  • 我尝试使用“自制”应用访问我的个人资料数据

所有这些尝试都失败了,因为他们不理解 api 和数据是如何工作并结合在一起的......

所以问题是: 如何让令牌/应用程序从我的个人资料中获取私人数据? 或者:获取这些数据的正确方法是什么?

先谢谢了!

【问题讨论】:

    标签: php facebook api facebook-graph-api


    【解决方案1】:

    您需要延长访问令牌的有效期才能执行此操作,然后将长期令牌存储在数据库中。这里有 2 个页面(部分)应该对此有所帮助:

    https://developers.facebook.com/docs/facebook-login/access-tokens/#termtokens

    https://developers.facebook.com/docs/facebook-login/access-tokens/#extending

    以下是有关扩展令牌的一些信息:

    GET /oauth/access_token?  
        grant_type=fb_exchange_token&           
        client_id={app-id}&
        client_secret={app-secret}&
        fb_exchange_token={short-lived-token} 
    

    您仍然希望定期延长您的令牌,因为它们在大约 60 天后到期。

    【讨论】:

    • 到此为止!但是我仍然对此有疑问:啊,那不应该发送;我还在编辑中
    • 啊。我不能再编辑它了... []...关于这个:我需要这种方法来为我的应用程序或我的用户帐户获取长期令牌吗?考虑到它是针对用户帐户的:应用程序 ID 是什么?它是 API Explorer 工具之一吗?如果是,我在哪里可以得到它?此外,从哪里得到秘密?我想我连国外app的秘密都拿不到?!如果此解决方案适用于我的私人应用程序:我仍然遇到问题,即应用程序无法访问我的 FB 个人资料中关于应用程序生命周期较短的非公开帖子。 (我什至不知道应用程序也有生命周期)
    • 您需要在 Facebook 上创建一个新应用,然后使用该应用的 app-id 和 app-secret。然后,您需要通过授权应用程序来授予该应用程序权限。 developers.facebook.com/docs/facebook-login/login-flow-for-web 那么你将拥有一个 user_access_token ,你可以用它来交换一个长期存在的令牌。
    • 现在我知道一切都需要知道。完美的。谢谢!
    猜你喜欢
    • 2012-12-02
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 2018-07-06
    相关资源
    最近更新 更多