You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中使用MailerLite PHP API V2取消订阅者分组的方法咨询

问题

在Laravel应用中使用mailerlite/mailerlite-api-v2-php-sdk时,遇到无法取消订阅者分组的问题:

  1. 可正常创建订阅者并分配分组:
$this->mailerLite = new \MailerLiteApi\MailerLite(env('MAILERLITE_API_KEY'));

// 创建新订阅者
$subscribersApi = $this->mailerLite->subscribers();
$newSubscriber = $subscribersApi->create([
    'email' => trim($request['email']),
    'fields' => [
        'name' => trim($request['firstName']),
        'last_name' => trim($request['secondName'])
    ],
    'groups' => [
        'firstgroupID'
    ]
]);
Log::info('newSubscriber: ' . json_encode($newSubscriber));
  1. 使用create方法更新订阅者分组时,该方法为非破坏性操作,仅添加新分组,不会移除原有分组:
$subscribersApi = $this->mailerLite->subscribers();
$updateSubscriber = $subscribersApi->create([
    'email' => $user->email,
    'fields' => [
        'name' => $user->forename,
        'last_name' => $user->surname
    ],
    'groups' => [
        'newGroupID'
    ]
]);
Log::info('updateSubscriber: ' . json_encode($updateSubscriber));
  1. 尝试通过Groups::unAssignSubscriber()方法移除分组时触发错误:
$subscriberId = $updateSubscriber->id;
$groupsApi = $this->mailerLite->groups();
$unassignSubscriber = $groupsApi->unAssignSubscriber('GROUP-ID-TO-BE-REMOVED',$subscriberId);
Log::info('unassignSubscriber: ' . json_encode($unassignSubscriber));

错误信息:

local.ERROR: Error: Call to undefined method MailerLiteApi\Api\Groups::unAssignSubscriber() in /app/app/Http/Controllers/MailerliteController.php:66

需明确在MailerLite PHP API V2中如何实现移除订阅者的分组。

解决方案

在MailerLite PHP API V2中,移除订阅者分组有两种可行方式:

方法一:通过订阅者API替换所有分组

使用subscribers()的update方法,传入订阅者ID和需要保留的分组ID数组——数组中未包含的原有分组会被自动移除:

$subscriberId = $updateSubscriber->id;
$subscribersApi = $this->mailerLite->subscribers();

// 仅保留需要的分组,排除要移除的目标分组
$updateResult = $subscribersApi->update($subscriberId, [
    'groups' => [
        '保留的分组ID1',
        '保留的分组ID2'
    ]
]);
Log::info('updateResult: ' . json_encode($updateResult));

方法二:通过分组API移除单个订阅者

Groups类提供了removeSubscriber方法(你之前误写为unAssignSubscriber),可直接从指定分组中移除订阅者:

$subscriberId = $updateSubscriber->id;
$groupsApi = $this->mailerLite->groups();

// 参数顺序:分组ID,订阅者ID
$unassignResult = $groupsApi->removeSubscriber('要移除的分组ID', $subscriberId);
Log::info('unassignResult: ' . json_encode($unassignResult));

内容的提问来源于stack exchange,提问作者N.Widds

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 10:33:21