facebook - 如何管理用户 facebook "managed pages"?

标签 facebook laravel laravel-socialite

我目前正在开发一个项目,我们希望将内容发布到用户的 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 API Documentation 中看到的那样,要使您的应用程序能够在用户管理的页面中发布,您需要请求 manage_pagespublish_pages 权限。

另一方面,默认情况下,Socialite 会向 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 键,该键将包含用户页面、他/她的角色的数组)、页面信息和在页面中执行操作的 token (是的,例如发布)。

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

关于facebook - 如何管理用户 facebook "managed pages"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47517636/

相关文章:

android - 如何在android中的服务类中验证facebook

facebook - Laravel Socialite 与 Facebook 未登录

laravel - 如何使用 Laravel 管理 OAuth 刷新 token ?

php - ampps/Laravel5 : error:Access denied for user 'root' @'localhost'

php - Composer 无法安装 laravel/socialite 2.0

javascript - 防止 Facebook "Like"跨域错误的解决方法?

ios - Facebook 登录 - Firebase V3

java - applicationId 不能为空,但 xml 语法正确

php - 将值提取为逗号分隔列表

php - 搜索查询在 Laravel 中不起作用