mvtester/tester-testsdks-vsdks-sdk

1.0.1 2023-07-10 12:37 UTC

This package is auto-updated.

Last update: 2024-09-10 15:09:24 UTC


README

简介

Verizon Edge Discovery 服务 API 可将您的应用程序客户端定向连接到每会话中适用于您多接入边缘计算 (MEC) 应用程序的最佳服务端点。Edge Discovery 服务会考虑设备的当前位置、其 IP 锚点位置、当前网络流量和其他因素,以确定设备应连接到哪个 5G Edge 平台。

Verizon 服务条款: https://www.verizon.com/business/5g-edge-portal/legal.html

安装包

运行以下命令安装包并将依赖项自动添加到您的 composer.json 文件中:

composer require "mvtester/tester-testsdks-vsdks-sdk:1.0.1"

或者根据以下步骤手动将其添加到 composer.json 文件中:

"require": {
    "mvtester/tester-testsdks-vsdks-sdk": "1.0.1"
}

您也可以在以下位置查看此包:https://packagist.org.cn/packages/mvtester/tester-testsdks-vsdks-sdk#1.0.1

初始化 API 客户端

注意: 客户端文档可在此处找到:here.

以下参数可配置为 API 客户端

API 客户端可初始化如下

$client = VerizonClientBuilder::init()
    ->oauthClientId('OAuthClientId')
    ->oauthClientSecret('OAuthClientSecret')
    ->vZM2mToken('VZ-M2M-Token')
    ->oauthScopes([
        VerizonLib\Models\OauthScopeEnum::DISCOVERYREAD,
        VerizonLib\Models\OauthScopeEnum::SERVICEPROFILEREAD,
        VerizonLib\Models\OauthScopeEnum::SERVICEPROFILEWRITE,
        VerizonLib\Models\OauthScopeEnum::SERVICEREGISTRYREAD,
        VerizonLib\Models\OauthScopeEnum::SERVICEREGISTRYWRITE,
        VerizonLib\Models\OauthScopeEnum::TS_MEC_FULLACCESS,
        VerizonLib\Models\OauthScopeEnum::TS_MEC_LIMITACCESS,
        VerizonLib\Models\OauthScopeEnum::TS_APPLICATION_RO,
        VerizonLib\Models\OauthScopeEnum::EDGEDISCOVERYREAD,
        VerizonLib\Models\OauthScopeEnum::EDGESERVICEPROFILEREAD,
        VerizonLib\Models\OauthScopeEnum::EDGESERVICEPROFILEWRITE,
        VerizonLib\Models\OauthScopeEnum::EDGESERVICEREGISTRYREAD,
        VerizonLib\Models\OauthScopeEnum::EDGESERVICEREGISTRYWRITE,
        VerizonLib\Models\OauthScopeEnum::READ,
        VerizonLib\Models\OauthScopeEnum::WRITE
    ])
    ->environment('Production')
    ->build();

API 调用返回一个包含以下字段的 ApiResponse 对象

授权

此 API 使用 OAuth 2 Client Credentials Grant

客户端凭证授权

如果此 SDK 选择使用 OAuth 2.0 客户端凭证授权,则您的应用程序必须在执行端点调用之前获取用户授权。此授权包括以下步骤

fetchToken() 方法会将 OAuth 客户端凭证交换为 访问令牌。访问令牌是一个包含授权客户端请求和刷新令牌本身信息的对象。

您必须使用 作用域 初始化客户端,这些作用域是您需要访问权限的。

try {
    $token = $client->getClientCredentialsAuth()->fetchToken();
    // re-build the client with oauth token
    $client = $client->toBuilder()->oauthToken($token)->build();
} catch (VerizonLib\Exceptions\ApiException $e) {
    // handle exception
}

客户端现在可以做出授权的端点调用。

作用域

作用域允许您的应用程序仅请求访问所需的资源,同时使用户能够控制授予您应用程序的访问量。可用的作用域在 OauthScopeEnum 枚举中定义。

存储访问令牌以重复使用

建议您存储访问令牌以重复使用。

// store token
$_SESSION['access_token'] = $client->getClientCredentialsAuth()->getOauthToken();

从存储的令牌创建客户端

要从存储的访问令牌授权客户端,只需在创建客户端之前将访问令牌设置在配置中,并设置其他配置参数

// load token later...
$token = $_SESSION['access_token'];

// re-build the client with oauth token
$client = $client->toBuilder()->oauthToken($token)->build();

完整示例

<?php
require_once __DIR__.'/vendor/autoload.php';

session_start();

// Client configuration
$client = VerizonClientBuilder::init()
    ->oauthClientId('OAuthClientId')
    ->oauthClientSecret('OAuthClientSecret')
    ->vZM2mToken('VZ-M2M-Token')
    ->oauthScopes([
        VerizonLib\Models\OauthScopeEnum::DISCOVERYREAD,
        VerizonLib\Models\OauthScopeEnum::SERVICEPROFILEREAD,
        VerizonLib\Models\OauthScopeEnum::SERVICEPROFILEWRITE,
        VerizonLib\Models\OauthScopeEnum::SERVICEREGISTRYREAD,
        VerizonLib\Models\OauthScopeEnum::SERVICEREGISTRYWRITE,
        VerizonLib\Models\OauthScopeEnum::TS_MEC_FULLACCESS,
        VerizonLib\Models\OauthScopeEnum::TS_MEC_LIMITACCESS,
        VerizonLib\Models\OauthScopeEnum::TS_APPLICATION_RO,
        VerizonLib\Models\OauthScopeEnum::EDGEDISCOVERYREAD,
        VerizonLib\Models\OauthScopeEnum::EDGESERVICEPROFILEREAD,
        VerizonLib\Models\OauthScopeEnum::EDGESERVICEPROFILEWRITE,
        VerizonLib\Models\OauthScopeEnum::EDGESERVICEREGISTRYREAD,
        VerizonLib\Models\OauthScopeEnum::EDGESERVICEREGISTRYWRITE,
        VerizonLib\Models\OauthScopeEnum::READ,
        VerizonLib\Models\OauthScopeEnum::WRITE
    ])
    ->environment('Production')
    ->build();



// Obtain access token, restore from cache if possible
if (isset($_SESSION['access_token'])) {
    $token = $_SESSION['access_token'];
    // re-build the client with oauth token
    $client = $client->toBuilder()->oauthToken($token)->build();
} else {
    try {
        // fetch an oauth token to authorize the client
        $token = $client->getClientCredentialsAuth()->fetchToken();
        // re-build the client with oauth token
        $client = $client->toBuilder()->oauthToken($token)->build();

        // store token
        $_SESSION['access_token'] = $token;
    } catch (VerizonLib\Exceptions\ApiException $e) {
        // handle exception
    }
}

// the client is now authorized; you can use $client to make endpoint calls

API 列表

类文档