dub/dub-php

v0.6.7 2024-09-28 05:57 UTC

README

摘要

Dub.co API:Dub 是公司创建营销活动、链接分享功能和推荐计划的联系管理基础设施。

目录

SDK 安装

SDK 依赖于 Composer 来管理其依赖项。

要安装 SDK 并将其添加到现有 composer.json 文件中

composer require "dub/dub-php"

SDK 示例用法

示例 1

declare(strict_types=1);

require 'vendor/autoload.php';

use Dub;
use Dub\Models\Operations;

$security = 'DUB_API_KEY';

$sdk = Dub\Dub::builder()->setSecurity($security)->build();

$request = new Operations\CreateLinkRequestBody(
    url: 'https://google.com',
    tagIds: [
        'clux0rgak00011...',
    ],
    externalId: '123456',
);

$response = $sdk->links->create(
    request: $request
);

if ($response->linkSchema !== null) {
    // handle response
}

示例 2

declare(strict_types=1);

require 'vendor/autoload.php';

use Dub;
use Dub\Models\Operations;

$security = 'DUB_API_KEY';

$sdk = Dub\Dub::builder()->setSecurity($security)->build();

$request = new Operations\UpsertLinkRequestBody(
    url: 'https://google.com',
    tagIds: [
        'clux0rgak00011...',
    ],
    externalId: '123456',
);

$response = $sdk->links->upsert(
    request: $request
);

if ($response->linkSchema !== null) {
    // handle response
}

可用资源和操作

可用方法

analytics

  • retrieve - 获取链接、域名或认证工作区的分析

domains

events

  • list - 获取事件列表

links

metatags

  • get - 获取 URL 的元标签

qrCodes

  • get - 获取 QR 码

tags

track

工作空间

  • get - 获取工作空间
  • update - 更新工作空间

错误处理

在此 SDK 中处理错误应大致符合您的预期。所有操作都返回响应对象或抛出异常。

默认情况下,API 错误将引发 Errors\SDKException 异常,该异常具有以下属性

当为操作指定自定义错误响应时,SDK 也可能抛出其关联的异常。您可以在 SDK 文档中的相应 Errors 表中找到有关每个操作的可能的异常类型更多详细信息。例如,create 方法抛出以下异常

示例

declare(strict_types=1);

require 'vendor/autoload.php';

use Dub;
use Dub\Models\Operations;

$security = 'DUB_API_KEY';

$sdk = Dub\Dub::builder()->setSecurity($security)->build();

try {
    $request = new Operations\CreateLinkRequestBody(
        url: 'https://google.com',
        tagIds: [
            'clux0rgak00011...',
        ],
        externalId: '123456',
    );

    $response = $sdk->links->create(
        request: $request
    );

    if ($response->linkSchema !== null) {
        // handle response
    }
} catch (Errors\BadRequestThrowable $e) {
    // handle $e->$container data
    throw $e;
} catch (Errors\UnauthorizedThrowable $e) {
    // handle $e->$container data
    throw $e;
} catch (Errors\ForbiddenThrowable $e) {
    // handle $e->$container data
    throw $e;
} catch (Errors\NotFoundThrowable $e) {
    // handle $e->$container data
    throw $e;
} catch (Errors\ConflictThrowable $e) {
    // handle $e->$container data
    throw $e;
} catch (Errors\InviteExpiredThrowable $e) {
    // handle $e->$container data
    throw $e;
} catch (Errors\UnprocessableEntityThrowable $e) {
    // handle $e->$container data
    throw $e;
} catch (Errors\RateLimitExceededThrowable $e) {
    // handle $e->$container data
    throw $e;
} catch (Errors\InternalServerErrorThrowable $e) {
    // handle $e->$container data
    throw $e;
} catch (Errors\SDKException $e) {
    // handle default exception
    throw $e;
}

服务器选择

服务器选择

按索引选择服务器

您可以通过在初始化 SDK 客户端实例时传递一个服务器索引到 server_idx: int 可选参数来全局覆盖默认服务器。然后,选定的服务器将作为默认服务器用于使用它的操作。此表列出了与可用服务器关联的索引

每个客户端按需覆盖服务器 URL

默认服务器也可以通过在初始化 SDK 客户端实例时传递一个 URL 到 server_url: str 可选参数来全局覆盖。例如

开发

成熟度

此 SDK 目前处于测试阶段,版本之间可能存在重大更改,而没有进行主要版本更新。因此,我们建议将使用限制在特定包版本上。这样,您就可以每次安装相同的版本,除非您有意寻找最新版本。

贡献

虽然我们重视对 SDK 的开源贡献,但此库是程序生成的。请随意打开一个 PR 或一个 Github 问题作为概念验证,我们将尽力将其包含在未来的版本中!

SDK 由 Speakeasy 创建