marshmallow/laravel-facebook-webhook

一个用于通过webhooks和Graph API在Laravel中检索Facebook引领的软件包。

v2.2.1 2024-07-26 16:30 UTC

This package is auto-updated.

Last update: 2024-09-26 16:54:32 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

安装

您可以通过composer安装此软件包

composer require marshmallow/laravel-facebook-webhook

此软件包使用 spatie/laravel-webhook-clientLaravel Socialite。请阅读这两个软件包的说明!

spatie/laravel-webhook-client 发布迁移以创建包含webhook调用的表,您必须使用以下命令发布迁移:

php artisan vendor:publish --provider="Spatie\WebhookClient\WebhookClientServiceProvider" --tag="migrations"

确保为Spatie Webhook软件包添加正确的配置

'name' => 'facebook-lead',
'signing_secret' => env('FACEBOOK_CLIENT_SECRET'),
'signature_header_name' => 'X-Hub-Signature',
'signature_validator' => \Marshmallow\LaravelFacebookWebhook\SignatureValidator\FacebookSignatureValidator::class,
'process_webhook_job' => \Marshmallow\LaravelFacebookWebhook\Jobs\ProcessFacebookLeadWebhookJob::class,

请参阅基本安装指南,然后遵循以下特定提供者的说明。

将配置添加到config/services.php

'facebook' => [
  'client_id' => env('FACEBOOK_CLIENT_ID'),
  'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
  'redirect' => env('FACEBOOK_REDIRECT_URI')
],

您可以使用以下命令发布配置和迁移文件:

php artisan vendor:publish --provider="Marshmallow\LaravelFacebookWebhook\LaravelFacebookWebhookServiceProvider"

迁移发布后,您可以通过运行迁移来创建webhook_calls表:

php artisan migrate

请确保已设置以下.env变量

FACEBOOK_CALLBACK_ROUTE= #Default set 'webhook-client-facebook-lead'
FACEBOOK_CLIENT_ID=
FACEBOOK_CLIENT_SECRET=
FACEBOOK_PAGE_ID=
FACEBOOK_REDIRECT_URI= #'/auth/facebook'

配置

这是将在config/facebook-webhook.php中发布的文件的正文

        'configs' => [
        [
            /*
             * This package supports multiple webhook receiving endpoints. If you only have
             * one endpoint receiving webhooks, you can use 'default'.
             */
            'name' => 'facebook-lead',

            /*
             * The class name of the job that will process the Facebook Lead Data.
             *
             * This should be set to a class that extends \Marshmallow\LaravelFacebookWebhook\Jobs\ProcessFacebookLeadJob,
             */
            'process_facebook_webhook_job' => '',

            /*
             * The callback route name from Facebook Leads .
             */
            'callback_route' => env('FACEBOOK_CALLBACK_ROUTE', 'webhook-client-facebook-lead'),

            /*
             * The graph api version for Facebook  .
             */
            'graph_api_version' => 'v14.0',

            /*
             * The App ID from the Facebook App.
             */
            'app_id' => env('FACEBOOK_CLIENT_ID'),

            /*
             * The App Secret from the Facebook App.
             */
            'app_secret' => env('FACEBOOK_CLIENT_SECRET'),

            /*
             * The Page ID to retrieve the leads from.
             */
            'page_id' => env('FACEBOOK_PAGE_ID'),
        ],
    ],

设置

使用以下来自Facebook的说明创建一个Facebook应用程序,确保您的应用程序具有以下权限:请求广告账户和页面上可以投放广告的人的Page或User访问令牌

  • ads_management权限
  • leads_retrieval权限
  • pages_show_list权限
  • pages_read_engagement权限
  • pages_manage_ads权限

设置迁移和.env后,运行以下命令:

php artisan marshmallow:setup-facebook

用法

此软件包使用 spatie/laravel-webhook-client 来检索和处理传入的Facebook Webhook。对于初始Facebook身份验证,它使用 Laravel Socialite。在传入的webhook上,它通过Facebook Graph API检索引领数据并在完成后发送事件。您可以在facebook-webhook配置文件中的process_facebook_webhook_job中指定哪个作业应处理引领数据。

例如,创建一个作业:

    use Marshmallow\LaravelFacebookWebhook\Jobs\ProcessFacebookLeadJob as MarshmallowWebhookJob;

    class ProcessFacebookDataJob extends MarshmallowWebhookJob
    {
        /**
         * Execute the job.
         *
         * @return void
         */
        public function handle()
        {
            ray($this->webhookData);
        }
    }

并将其添加到配置中:

    'process_facebook_webhook_job' => \App\Jobs\ProcessFacebookDataJob::class,

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

贡献

请参阅贡献指南以获取详细信息。

安全漏洞

请查看我们关于如何报告安全漏洞的安全策略

鸣谢

许可协议

MIT许可协议(MIT)。请参阅许可文件以获取更多信息。