lukapeharda/kourses-php

Kourses API PHP库

1.3.3 2024-06-05 11:53 UTC

This package is auto-updated.

Last update: 2024-09-05 12:22:10 UTC


README

Kourses PHP库提供从PHP编写的应用程序访问Kourses API的功能。它包括一组预定义的类,用于API资源,如membersmembershipspermissions

要求

PHP 5.6.0及更高版本。

安装

您可以通过Composer安装库。运行以下命令

composer require lukapeharda/kourses-php

要使用库,请使用Composer的自动加载

require_once('vendor/autoload.php');

入门指南

访问Kourses 设置/ API密钥页面并生成API密钥。每个密钥只与您的网站之一相关联。复制您的API密钥,因为以后您将无法访问该令牌。

API密钥应作为HTTP Authorization头中的bearer令牌

Authorization: Bearer GENERATED_API_TOKEN

首先初始化一个客户端并设置令牌

$kourses = new KoursesPhp\Client();
$kourses->setApiKey('GENERATED_API_TOKEN');

如果您想访问Kourses应用的测试环境,请使用setApiBaseUrl方法更改URL

$kourses->setApiBaseUrl('https://app.kourses-beta.com/api/');

获取会员资格

要获取所有已发布的会员资格,请使用memberships资源及其all方法

$memberships = $kourses->memberships->all();

返回的数据将分页(默认每页100个会员资格)。要更改每页的会员资格数量或当前页,请使用pageper_page参数(分别对应)

$memberships = $kourses->memberships->all([
    'per_page' => 10,
    'page' => 2,
]);

您可以通过遍历$memberships来获取KoursesPhp\Membership实体。

有一些有用的方法来处理分页

$memberships->getCurrentPage(); // returns current page number
$memberships->getLastPage(); // returns last page number
$memberships->getTotal(); // returns total number of memberships
$memberships->getFrom(); // returns current page items range start
$memberships->getTo(); // returns current page items range end
$memberships->getPerPage(); // returns number of memberships per page

创建会员

members资源上使用create方法

$member = $kourses->members->create([
    'email' => 'john.doe@example.com',
    'first_name' => 'John',
    'last_name' => 'Doe',
]);

如果找到会员(根据其电子邮件地址),则它们将使用给定的其余数据更新。

您可以在同一API调用中设置会员应获取访问权限的会员资格列表

$member = $kourses->members->create([
    'email' => 'john.doe@example.com',
    'first_name' => 'John',
    'last_name' => 'Doe',
    'memberships' => ['MEMBERSHIP#1', 'MEMBERSHIP#2'],
]);

// or

$member = $kourses->members->create([
    'email' => 'john.doe@example.com',
    'first_name' => 'John',
    'last_name' => 'Doe',
    'memberships' => [
        [
            'id' => 'MEMBERSHIP#1'
        ], [
            'id' => 'MEMBERSHIP#2'
        ]
    ],
]);

发送激活邮件

默认情况下,当创建新会员时,他们会收到激活邮件。

要禁用此功能,请将send_activation_notification设置为0

$member = $kourses->members->create([
    'email' => 'john.doe@example.com',
    'first_name' => 'John',
    'last_name' => 'Doe',
    'send_activation_notification' => 0,
]);

设置权限到期日期

对于每个会员资格,您可以使用memberships_ends_at参数或嵌套的memberships[0][ends_at]设置未来的到期日期。给定的日期需要是YYYY-MM-DDYYYY-MM-DD hh:mm:ss格式

$member = $kourses->members->create([
    'email' => 'john.doe@example.com',
    'first_name' => 'John',
    'last_name' => 'Doe',
    'memberships' => ['MEMBERSHIP#1', 'MEMBERSHIP#2'],
    'memberships_ends_at' => [
        'MEMBERSHIP#1' => '2030-04-05',
    ],
]);

// or

$member = $kourses->members->create([
    'email' => 'john.doe@example.com',
    'first_name' => 'John',
    'last_name' => 'Doe',
    'memberships' => [
        [
            'id' => 'MEMBERSHIP#1',
            'ends_at' => '2030-04-05'
        ], [
            'id' => 'MEMBERSHIP#2'
        ]
    ],
]);

跳过定时计划

对于每个会员资格,您可以使用memberships_skip_drip_schedule参数或嵌套的memberships[0][skip_drip_schedule]禁用定时计划

$member = $kourses->members->create([
    'email' => 'john.doe@example.com',
    'first_name' => 'John',
    'last_name' => 'Doe',
    'memberships' => ['MEMBERSHIP#1', 'MEMBERSHIP#2'],
    'memberships_skip_drip_schedule' => [
        'MEMBERSHIP#1' => 0,
    ],
]);

// or

$member = $kourses->members->create([
    'email' => 'john.doe@example.com',
    'first_name' => 'John',
    'last_name' => 'Doe',
    'memberships' => [
        [
            'id' => 'MEMBERSHIP#1',
            'skip_drip_schedule' => 0
        ], [
            'id' => 'MEMBERSHIP#2'
        ]
    ],
]);

默认情况下,它将遵守设置的定时计划。

运行会员的电子邮件集成

对于每个会员资格,您可以使用memberships_run_email_integrations参数(或嵌套的memberships[0][run_email_integrations])启用电子邮件集成的运行

$member = $kourses->members->create([
    'email' => 'john.doe@example.com',
    'first_name' => 'John',
    'last_name' => 'Doe',
    'memberships' => ['MEMBERSHIP#1', 'MEMBERSHIP#2'],
    'memberships_run_email_integrations' => [
        'MEMBERSHIP#1' => 1,
    ],
]);

// or

$member = $kourses->members->create([
    'email' => 'john.doe@example.com',
    'first_name' => 'John',
    'last_name' => 'Doe',
    'memberships' => [
        [
            'id' => 'MEMBERSHIP#1',
            'run_email_integrations' => 1
        ], [
            'id' => 'MEMBERSHIP#2'
        ]
    ],
]);

获取会员的允许会员资格

使用memberMemberships资源及其all方法获取会员被授予访问权限的所有会员资格列表

$memberships = $kourses->memberMemberships->all([
    'member' => 'MEMBER#1',
]);

您甚至可以使用会员的电子邮件地址来获取会员资格

$memberships = $kourses->memberMemberships->all([
    'member' => 'john.doe@example.com',
]);

返回的数据将分页(默认每页100个会员资格)。要更改每页的会员资格数量或当前页,请使用pageper_page参数(分别对应)

$memberships = $kourses->memberMemberships->all([
    'member' => 'MEMBER#1',
    'per_page' => 10,
    'page' => 2,
]);

为会员生成一键登录链接

使用memberLoginLink资源及其create方法生成临时签名登录链接。

$loginLink = $koures->memberLoginLink->create([
    'member' => 'MEMBER#1',
]);

返回的$loginLink对象将有一个login_link属性,您可以将其提供给用户以便他们登录。还有一个expires_at属性,它包含登录链接将过期的ISO-8601时间戳。

签名链接将在5分钟后(300秒)过期。

您甚至可以使用会员的电子邮件地址来生成链接

$loginLink = $kourses->memberLoginLink->create([
    'member' => 'john.doe@example.com',
]);

如果您希望在登录成功后重定向会员,请指定带有相对路径的redirect参数

$loginLink = $kourses->memberLoginLink->create([
    'member' => 'john.doe@example.com',
    'redirect' => 'account/profile',
]);

授予权限

要授予权限,您需要在 permissions 资源上调用 create 方法,并提供成员 ID(或他们的电子邮件地址)和会员 ID。

$status = $kourses->permissions->create([
    'member' => 'MEMBER#1',
    'membership' => 'MEMBERSHIP#1',
]);

您还可以添加额外的 ends_at 参数来指定权限过期日期。给定的日期需要是 YYYY-MM-DDYYYY-MM-DD hh:mm:ss 格式。

$status = $kourses->permissions->create([
    'member' => 'MEMBER#1',
    'membership' => 'MEMBERSHIP#1',
    'ends_at' => '2030-04-05',
]);

如果您想跳过为特定会员设置的定时任务,请使用 skip_drip_schedule 并将其设置为 0

$status = $kourses->permissions->create([
    'member' => 'MEMBER#1',
    'membership' => 'MEMBERSHIP#1',
    'skip_drip_schedule' => 0,
]);

如果您想为特定会员运行电子邮件集成,请使用 run_email_intgrations 并将其设置为 1

$status = $kourses->permissions->create([
    'member' => 'MEMBER#1',
    'membership' => 'MEMBERSHIP#1',
    'run_email_intgrations' => 0,
]);

默认情况下,将遵守设置的定时任务。

撤销权限

要撤销权限,您需要在 permissions 资源上调用 delete 方法,并提供成员 ID(或他们的电子邮件地址)和会员 ID。

$status = $kourses->permissions->delete([
    'member' => 'MEMBER#1',
    'membership' => 'MEMBERSHIP#1',
]);

您还可以添加额外的 ends_at 参数来指定权限过期日期。给定的日期需要是 YYYY-MM-DDYYYY-MM-DD hh:mm:ss 格式。

$status = $kourses->permissions->delete([
    'member' => 'MEMBER#1',
    'membership' => 'MEMBERSHIP#1',
    'ends_at' => '2030-04-05',
]);

文档

请查看 示例 文件夹以获取一些基本用例。完整文档可在 developer.kourses.com 上找到。