PHP 封装库,用于与 Qualia 分析 API 交互

1.0.3 2017-12-18 11:06 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:47:06 UTC


README

Qualia 分析

Build Status Scrutinizer Code Quality Code Coverage

PHP 封装库,用于与 Qualia 分析 API 交互

先决条件

  • PHP 5.3+
  • Composer

安装

Composer

composer require qualiaanalytics/php-api
// Import library from composer
require __DIR__ . '/vendor/autoload.php';

使用方法

创建客户端

$client = new \Qualia\Client("YOUR_SURVEY_ID", "API_KEY");

请向客户端构造函数提供 SURVEY_ID 和 API_KEY 参数。

构建请求并提交

$response = \Qualia\Submission\Entry::build($client)
                                  ->name("QUESTION_ID", "First Name", "Last Name")
                                  ->email("QUESTION_ID", "email@example.com")
                                  ->date("QUESTION_ID", "2020-01-02")
                                  ->response("QUESTION_ID", "RESPONSE")
                                  ->send();

请为每个字段提供问题标识符。可以使用 此辅助方法 获取问题标识符的完整列表

提供唯一的标识符(推荐,可选)

为确保您不发送重复条目,如果您在系统中具有该特定条目的某种标识符,请提供该标识符。这可以是任何东西:订单号、客户号、用户号等。

$response = \Qualia\Submission\Entry::build($client)
                                  ->uniqueId("123")
                                  ...
                                  ->send();

提供条目的语言(推荐,可选)

如果调查启用了多种语言,您可以使用以下语法设置条目的语言,具体取决于您网站的语言。

$response = \Qualia\Submission\Entry::build($client)
                                  ...
                                  ->language("en")
                                  ->send();

如果没有提供,系统将分配默认的调查语言。请注意,如果提供的语言不在调查语言的列表中,将分配默认的调查语言。

允许重复的电子邮件

默认情况下,我们将拒绝重复的电子邮件并抛出 EmailExistsException。但是,如果您想允许提交重复的电子邮件,您可以调用 allowDuplicates() 方法。 请确保您不会太频繁地提交重复的电子邮件,因为这会导致向相同的电子邮件地址发送重复的电子邮件。

$response = \Qualia\Submission\Entry::build($client)
                                  ->allowDuplicates()
                                  ...
                                  ->send();

检索调查的问题标识符

如果您不确定要提供哪些字段,请检索调查中使用的所有问题的完整列表。注意:这将检索所有可用的问题,通常您应该只提供电子邮件、姓名、可能是一次访问的日期以及其他您已收集的相关字段。

$questions = \Qualia\Configuration\Questions::get($client);

var_dump($questions);
/*
    [
        "surveys": [
            [ "name": "Enrollment Survey","key": "enrollment"],
            [ "name": "Initial Survey","key": "initial_survey"], 
        ],
        [
            key: "QUESTION_ID",
            name: "Question Name"
            type: "Question Type",
            options: [
                OPTION_ID: "Option #1 name",
                OPTION_ID: "Option #2 name",
                ...
            ],
            help: "guidance which method to use"
        ],
        [
            key: "q_BFmVBf1TSb11xAU0",
            name: "What's your date of Visit?"
            type: "date",
            options: [ ],
            help: "use date("q_BFmVBf1TSb11xAU0", "2020-01-02") method in API Client. Date Value must be provided in Y-m-d."
        ],
        ...
    ]
*/
                              

完整示例

这是一个通用的完整配置示例,在大多数情况下都适用。您需要替换大写字母中的字符串。

// Import library from composer
require __DIR__ . '/vendor/autoload.php';

// Initialize client
$client = new \Qualia\Client("YOUR_SURVEY_ID", "API_KEY");

try {
    // Create entry
    $response = \Qualia\Submission\Entry::build($client)
                                        ->uniqueId("SOME_ID")
                                        ->name("QUESTION_ID", "First Name", "Last Name")
                                        ->email("QUESTION_ID", "email@example.com")
                                        ->date("QUESTION_ID", "2020-01-02")
                                        ->response("QUESTION_ID", "RESPONSE")
                                        ->send();
} catch (\Qualia\Exceptions\ConnectionErrorException $e) {
    // unable to connect to server
} catch (\Qualia\Exceptions\EmailExistsException $e) {
    // echo $e->getEntryId();
    // The submitted email already exists in the server.
    // You may or may not need to handle this in your code..
    // By default, we are preventing duplicate submissions,
    // if you would like to submit it otherwise, call
    // allowDuplicates() method when building an entry
} catch (\Qualia\Exceptions\RequestException $e) {
    // some other unexpected error
    // echo $e->getMessage();
}