lukapeharda / kourses-php
Kourses API PHP库
Requires
- php: >=5.6.0
- guzzlehttp/guzzle: 6.3.*|6.5.*|^7.2
- illuminate/support: ~5.5|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
README
Kourses PHP库提供从PHP编写的应用程序访问Kourses API的功能。它包括一组预定义的类,用于API资源,如members、memberships和permissions。
要求
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个会员资格)。要更改每页的会员资格数量或当前页,请使用page和per_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-DD或YYYY-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个会员资格)。要更改每页的会员资格数量或当前页,请使用page和per_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-DD 或 YYYY-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-DD 或 YYYY-MM-DD hh:mm:ss 格式。
$status = $kourses->permissions->delete([ 'member' => 'MEMBER#1', 'membership' => 'MEMBERSHIP#1', 'ends_at' => '2030-04-05', ]);
文档
请查看 示例 文件夹以获取一些基本用例。完整文档可在 developer.kourses.com 上找到。