【问题标题】:How do I manage a users facebook "managed pages"?如何管理用户 facebook“管理页面”?
【发布时间】:2018-05-11 02:05:51
【问题描述】:

我目前正在开展一个项目,我们希望将帖子发布到用户的 Facebook 墙或用户管理页面之一的墙。

查看此页面:https://socialiteproviders.github.io/

请注意,facebook 未列出!奇怪的是它是顶级社交网络之一,为什么要让它成为一个自定义的覆盖提供者?

    return Socialite::with('facebook')->scopes(['publish_actions', 'manage_pages', 'pages_show_list'])->redirect();

然后

    $user = Socialite::driver('facebook')->user();

我在哪里可以找到有关 facebook 的社交名流文档?具体来说,您如何获取刚刚登录的用户的托管页面上的信息。

我们确实获得了 Facebook 的应用许可。当您关联您的帐户时,在 Facebook 页面上会弹出请求授予该应用管理页面的权限。

当我 dd() 时 ->user() 的结果

我明白了

token, refreshToken, expiresIn, id, nickname, name, email, avatar, user -> [name, email, gender, verified, link, id], avatar_original, profileUrl.

如果我理解正确,应该有办法获取包含托管页面信息的“数据”属性。

查看此链接:https://developers.facebook.com/docs/pages/access-tokens#multiple-pages

我必须直接使用 Facebook API,还是有办法从社交名流那里获取这些信息?

谢谢!

编辑:

我还询问了 Facebook 提供商,以及它是否被硬编码到社交名流中。我已经在 vendor/laravel/socialite/SocialliteServiceProvider.php 中发布了这个发现,实际上是为 facebook 连接的。但是,我仍然无法弄清楚如何管理 facebook 用户的“管理页面”

【问题讨论】:

    标签: facebook laravel laravel-socialite


    【解决方案1】:

    在我看来,你很接近。

    正如您在Facebook API Documentation 中看到的,要使您的应用程序能够在用户管理的页面中发布,您需要请求manage_pages y publish_pages 权限。

    另一方面,默认情况下,社交名流会向 Facebook 询问最常见的字段(如 idemailname 等),但要获得额外的驱动程序特定字段,您也需要指定它们.所以应该这样做:

    return Socialite::
                with('facebook')
                ->scopes(['manage_pages', 'publish_pages', 'the_rest_of_your_scopes'])
                ->redirect();
    

    并检索用户:

    $social_user = Socialite::
                        driver('facebook')
                        ->fields(['accounts', 'some_other_extra_fields'])
                        ->user();
    

    免责声明:我尚未对其进行测试,但这应该在用户对象中包含一个accounts 键,该键将包含用户页面、他/她的角色、页面信息和用于在页面中执行操作的令牌(是的,例如发布)。

    我希望这至少可以为您提供指导。祝你好运。

    【讨论】:

    • 感谢您的回答...是的,但我需要的是管理页面和页面评论,就像有人在我的页面上发布评论然后我会在我的网站上看到评论并且应该能够从我的网站回复他/她的评论。
    • 我明白了.. 但这不是你在问题中写的
    • 是的,你是对的。但我需要更新问题。如果您有想法,请分享它或某种链接。那会很棒
    • Socialite 有助于使用 Facebook/Instagram/GitHub 等第三方系统记录用户。您需要的是更具体的 imo,因此请尝试使用 Facebook PHP 库或直接与 Facebook Graph API 交互.
    【解决方案2】:

    如果您检查以下官方 Laravel Socialite Pacakge (使用这个包)

    https://github.com/laravel/socialite

    Facebook 提供商已经存在。

    1. 从 Facebook 获取访问令牌
    2. 保存到数据库
    3. 使用 facebook 的图形 API 访问页面详细信息。
    4. 通过 api 请求发送保存的访问令牌

    或者你也可以使用这个包。

    https://github.com/SammyK/LaravelFacebookSdk

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2011-02-27
      • 2012-02-18
      • 2020-03-09
      • 1970-01-01
      相关资源
      最近更新 更多