telnyx / telnyx-php
Telnyx PHP 库
Requires
- php: >=5.6.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- paragonie/sodium_compat: ^1.13
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.15
- phpunit/phpunit: ^5.7
- squizlabs/php_codesniffer: ^3.3
- symfony/process: ~3.4
- 2.8.1
- v2.8.0
- v2.7.1
- v2.7.0
- v2.6.0
- v2.5.2
- v2.5.1
- v2.5.0
- 2.3.0
- 2.2.0
- 2.1.0
- dev-master / 2.0.x-dev
- 2.0.1
- 2.0.0
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- v0.0.1
- dev-php-3.0
- dev-10DLC-Update-+-Version
- dev-10DLC-Update
- dev-issue_73_update_v1
- dev-issue_73_solved_1
- dev-issue_73_1
- dev-vidhan/issue_73
- dev-semgrep-INFRA-8882
- dev-September2021
- dev-WebRTC_AccessToken
- dev-2021-07-08_v2.6
- dev-CallQueueing
- dev-release_v2.5.2
- dev-PHP8Fix
- dev-BugFixesApril2021
- dev-update_mock_version
- dev-2.5.1_update
- dev-v2.4.0_release
- dev-CallControlAPIUpdates2021
- dev-march-version-release
- dev-FaxApplications
- dev-MessagingHostedNumber
- dev-fix-missing-name-tests
- dev-github_actions
- dev-VerifyAPI-updates
- dev-VerifyAPI
- dev-Coverage-2020-08
- dev-Bugfixes-2020-08
- dev-Webhooks
- dev-CoverageUpdates-2020-07
- dev-Bug37
- dev-ErrorHandling
- dev-BalanceFaxes
- dev-Hotfix-for-Bug-32
- dev-BugFixes-2020-05
- dev-BugFixes-2020-04
- dev-CallControlApplications
- dev-BugFIx-Paging
- dev-PortoutSimCard
- dev-Address_InboundChannel
- dev-Tests2020-03-16
- dev-OutboundVoiceProfiles
- dev-BugFix-18
- dev-CallControl
- dev-Connections
- dev-PhoneNumbers
- dev-BugFix-filter
- dev-NumberOrderRegulatory
- dev-tests
- dev-milestone4
- dev-apitests
This package is auto-updated.
Last update: 2024-09-25 15:37:26 UTC
README
Telnyx PHP 库提供了从 PHP 编写的应用程序中方便地访问 Telnyx API 的方法。它包含一组预定义的类,这些类可以从 API 响应中动态初始化自身。
库还提供了其他功能。例如
- 易于配置路径,快速设置和使用。
- 分页助手。
- 根据 Telnyx API 的预期内置参数序列化机制。
您可以在 telnyx.com 注册 Telnyx 账户。
要求
PHP 5.6.0 及更高版本。
Composer
您可以通过 Composer 安装绑定。运行以下命令
$ composer require telnyx/telnyx-php
手动安装
如果您不想使用 Composer,可以下载最新的 发布版。然后,为了使用绑定,包括 init.php
文件。
require_once('/path/to/telnyx-php/init.php');
依赖
需要一些 PHP 扩展
Composer 将处理这些依赖。如果您手动安装,请确保这些扩展可用。
入门
基本示例
\Telnyx\Telnyx::setApiKey('YOUR_API_KEY_HERE'); // Get a list of messaging profiles $result = \Telnyx\MessagingProfile::all(); // Output list of messaging profiles print_r($result);
文档
请参阅最新文档:https://developers.telnyx.com/docs/api/v2/overview
自定义请求超时
要修改请求超时(连接或总时间,以秒为单位),您需要告诉 API 客户端使用其默认值之外的 CurlClient。您将在那个 CurlClient 中设置超时。
// set up your tweaked Curl client $curl = new \Telnyx\HttpClient\CurlClient(); $curl->setTimeout(10); // default is Telnyx\HttpClient\CurlClient::DEFAULT_TIMEOUT $curl->setConnectTimeout(5); // default is Telnyx\HttpClient\CurlClient::DEFAULT_CONNECT_TIMEOUT echo $curl->getTimeout(); // 10 echo $curl->getConnectTimeout(); // 5 // tell Telnyx to use the tweaked client \Telnyx\ApiRequestor::setHttpClient($curl); // use the Telnyx API client as you normally would
自定义 cURL 选项(代理)
需要为请求设置代理?将必需的 CURLOPT_*
数组传递给 CurlClient 构造函数,使用与 curl_stopt_array()
相同的语法。这将设置 SDK 所做的每个 HTTP 请求的默认 cURL 选项,尽管即使在此处设置,客户端也会覆盖许多更常见的选项(例如超时;有关如何设置这些超时,请参见上面)。
// set up your tweaked Curl client $curl = new \Telnyx\HttpClient\CurlClient([CURLOPT_PROXY => 'proxy.local:80']); // tell Telnyx to use the tweaked client \Telnyx\ApiRequestor::setHttpClient($curl);
或者,可以将可调用的函数传递给 CurlClient 构造函数,该函数根据请求输入返回上述数组。请参见 tests/CurlClientTest.php
中的 testDefaultOptions()
以了解此行为的示例。请注意,在发送请求之前,在每次 API 请求的开始时调用该可调用的函数。
配置记录器
库执行最少的日志记录,但它可以配置为使用 PSR-3
兼容的记录器,以便消息最终出现在那里而不是 error_log
\Telnyx\Telnyx::setLogger($logger);
访问响应数据
您可以通过 getLastResponse()
在任何对象上访问最后 API 响应的数据。
$order = \Telnyx\NumberOrder::create(['phone_number' => '+18665552368']); print_r($order->getLastResponse()->headers);
SSL / TLS 兼容性问题
Telnyx 的 API 现在要求所有连接都使用 TLS 1.2。一些系统(尤其是某些较旧的 CentOS 和 RHEL 版本)能够使用 TLS 1.2,但默认会使用 TLS 1.0 或 1.1。
建议的操作是升级您的cURL和OpenSSL包,以便默认使用TLS 1.2,但如果这不可能实现,您可能可以通过将CURLOPT_SSLVERSION
选项设置为CURL_SSLVERSION_TLSv1
或CURL_SSLVERSION_TLSv1_2
来解决此问题。
$curl = new \Telnyx\HttpClient\CurlClient([CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1]); \Telnyx\ApiRequestor::setHttpClient($curl);
按请求配置
对于在进程生命周期内需要使用多个密钥的应用,也可以设置每个请求的密钥和/或账户。
\Telnyx\NumberOrder::all([], [ 'api_key' => 'KEY0123...' ]); \Telnyx\NumberOrder::retrieve("12ade33a-21c0-473b-b055-b3c836e1c292", [ 'api_key' => 'KEY0123...' ]);
自动重试
库可以被配置为自动重试因间歇性网络问题而失败的请求。
\Telnyx\Telnyx::setMaxNetworkRetries(2);
开发
单元测试依赖于模拟服务器,因此所有单元测试都通过Docker运行。要运行所有单元测试,请执行
docker-compose run --rm php composer test
使用代码覆盖率运行单元测试需要您构建带有XDEBUG=1的Docker容器
docker-compose build --build-arg XDEBUG=1
然后以以下方式运行单元测试
docker-compose run --rm php composer test-coverage
插件开发者
您正在编写一个集成Telnyx并嵌入我们库的插件吗?那么请使用setAppInfo
函数来标识您的插件。例如
\Telnyx\Telnyx::setAppInfo("MyCustomPlugin", "1.2.3", "https://customplugin.yoursite.com");
该方法应在发送任何请求到API之前调用一次。第二个和第三个参数是可选的。
SSL / TLS配置选项
请参阅上面的“SSL / TLS兼容性问题”段落以获取完整上下文。如果您想确保您的插件可以在所有系统上使用,您应该添加一个配置选项,让用户选择不同的CURLOPT_SSLVERSION
值:无(默认),CURL_SSLVERSION_TLSv1
和CURL_SSLVERSION_TLSv1_2
。
致谢
感谢Telnyx PHP的贡献者和维护者向Stripe PHP的作者表示深深的感激,该项目基于此项目。感谢您开发出如此优雅、实用和可扩展的代码,并与社区分享。