铁路 / intercomeo
Intercom集成
v2.0.6
2019-12-05 18:53 UTC
Requires
- php: ~7
- guzzlehttp/guzzle: ~6.0
- intercom/intercom-php: ^3.1-stable
- laravel/framework: 5.*
Requires (Dev)
- orchestra/testbench: ~3.4
- phpunit/phpunit: ~5.7
README
安装
- 从安全笔记将秘密复制到.env文件。
- 将IntercomeoServiceProvider添加到config/app.php中"providers"列表。
- 在composer.json的"require"部分添加。
- 运行以下命令:
composer install
php artisan vendor:publish
- 相应地编辑laravel/config/intercomeo.php(如上所述的php artisan vendor:publish命令生成)。
- 根据需要通过触发和调用
Intercomeo
事件和方法(分别)将集成到您的应用程序中。
关于术语"用户ID"的说明
注意:以下术语"用户ID"指的是您应用程序中的用户ID(不是他们的Intercom ID)。我们可能只会使用这个"用户ID",并且很可能不会用到Intercom ID。
功能概述
将用户添加到Intercom
触发Railroad\Intercomeo\Events\MemberAdded
事件,传递用户ID、电子邮件以及(可选)该用户的标签。
存储用户最后活跃时间
在每次请求时,触发一个ApplicationReceivedRequest事件,传递以下详细说明的必要参数。
这将评估当前"时间块"内用户的活动是否已经被记录,并相应地与Intercom交互。
Railtracker在这里非常有用,但您可以使用任何您想要的。
所需参数
- 用户ID
- 电子邮件
- 请求时间(时间戳,UTC)
- 前一个请求(时间戳,UTC)
详细信息
注意,所有时间都以UTC时间戳(Unix时间)处理。
Intercom的用户模型有一个"last_request_at"属性(参考)。如果我们要在每次请求时设置这个属性,那么这将是不合理地使用我们的API速率限制。因此,我们将决定一个"缓冲时间量",并保存last_request_time,使其作为可接受的误差量。
默认的"缓冲时间量"是预设的,并且可以在配置中覆盖。
前端
按照Intercom提供的说明进行操作(https://developers.intercom.com/docs/basic-javascript)。
测试
环境变量
要获取运行测试时的环境变量,请将它们添加到包的phpunit.xml中,如下所示
<?xml version="1.0" encoding="UTF-8"?> <!-- ... there would likely be things here... --> <php> <!-- ... there would likely be things here... --> <env name="INTERCOM_APP_ID" value="xxxxxx"/> <env name="INTERCOM_HMAC_SECRET" value="xxxxxx"/> <env name="INTERCOM_ACCESS_TOKEN" value="xxxxxx"/> </php> </phpunit>
非常小心,如果您已添加秘密,不要提交此内容
集成测试的API秘密
在\Railroad\Intercomeo\Tests*TestCase::getEnvironmentSetUp*中设置,如下所示
$app['config']->set('intercomeo.access_token', env('INTERCOM_ACCESS_TOKEN'));