铁路/intercomeo

v2.0.6 2019-12-05 18:53 UTC

README

安装

  1. 从安全笔记将秘密复制到.env文件。
  2. 将IntercomeoServiceProvider添加到config/app.php中"providers"列表。
  3. 在composer.json的"require"部分添加。
  4. 运行以下命令:
    1. composer install
    2. php artisan vendor:publish
  5. 相应地编辑laravel/config/intercomeo.php(如上所述的php artisan vendor:publish命令生成)。
  6. 根据需要通过触发和调用Intercomeo事件和方法(分别)将集成到您的应用程序中。

关于术语"用户ID"的说明

注意:以下术语"用户ID"指的是您应用程序中的用户ID(不是他们的Intercom ID)。我们可能只会使用这个"用户ID",并且很可能不会用到Intercom ID。

功能概述

将用户添加到Intercom

触发Railroad\Intercomeo\Events\MemberAdded事件,传递用户ID、电子邮件以及(可选)该用户的标签。

存储用户最后活跃时间

在每次请求时,触发一个ApplicationReceivedRequest事件,传递以下详细说明的必要参数。

这将评估当前"时间块"内用户的活动是否已经被记录,并相应地与Intercom交互。

Railtracker在这里非常有用,但您可以使用任何您想要的。

所需参数

  1. 用户ID
  2. 电子邮件
  3. 请求时间(时间戳,UTC)
  4. 前一个请求(时间戳,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'));