faixan23/constantcontact
Composer 安装命令:
composer require faixan23/constantcontact
包简介
Object Oriented Wrapper for Constant Contact API V3 for PHP 7.2
README 文档
README
PHP Object Oriented wrapper for the Constant Contact V3 API.
PHPFUI/ConstantContact is a modern PHP library that tracks the latest changes to the Constant Contact API.
PHPFUI/ConstantContact reads the YAML file from the Constant Contact documentation and generates PHP classes directly from the YAML file. The library is auto updated nightly. This means the library is always up to date with the latest changes. See the versioning section for further details.
Installation
Since this library is constantly updated when Constant Contact updates their API, it is best to modify the Composer version constraint from '^' to '>=', for example:
"phpfui/constantcontact": "^22.3",
should be changed to:
"phpfui/constantcontact": ">=22.3",
Requirements
This library requires PHP Session support for authentication. See PHP Manual and a good best practices article. You can provide your own session management by specifying a callback with setSessionCallback.
Namespaces
This library normalizes the Constant Contact API to modern PHP class standards. All endpoints are first character capitialized. Underscores are removed and followed by a capital letter. Each end point is a class with methods matching the standard REST methods (ie. put, post, delete, put, etc.). The methods take required and optional parameters matching the name specified in the Constant Contact YAML API. In addition, this library supports all definitions of types in the API. See below.
Due to a mistake in naming conventions by Constant Contact API designers, several end points are duplicated between the end point that returns all objects, and the end point that just works with one object. Normally this is dealt with by using the singular form of the noun for CRUD type operations on a single object, and the plural noun form returns a list of objects. This library follows the correct naming convention (single nouns for CRUD and plural nouns for collections) and not the Constant Contact naming convention.
Definitions
This Constant Contact API defines all types of objects to interact with the API. They are defined in the PHPFUI\ConstantContact\Definition namespace. Only valid fields are allowed to be accessed. Types are fully validated as to the best ability of PHP. Min and max lengths are enforced for strings.
Usage Once Authorized (see below)
// Create a client $client = new \PHPFUI\ConstantContact\Client($apiKey, $secret, $redirectURI); // Set access and refresh tokens on client $client->accessToken = $accessTokenFromDatabase; $client->refreshToken = $refreshTokenFromDatabase; // Refresh the tokens. This should be done on a regular (daily) basis so the token does not expire. $client->refreshToken(); // save $client->accessToken and $client->refreshToken to database. // $client is now ready to use $listEndPoint = new \PHPFUI\ConstantContact\V3\ContactLists($client); $lists = $listEndPoint->get(); do { print_r($lists); $lists = $listEndPoint->next(); } while ($lists);
Constant Contact Setup
In order to use this library, you will need to set up Constant Contact correctly. Go to Constant Contact API and create an application. Get an API Key and Secret and save it off for the \PHPFUI\ConstantContact\Client constructor. You will also need to set up and add a Redirect URI. You can use https://localhost if you want to authorize manually, but it is recommended to allow your users to authorize directly. The Redirect URI will receive a code that you will need to authorize the app, and then store the generated access token and refresh token. You should also provide the URL to your site's App logo. This will be shown to your user when they authenticate the app. They will need to sign into Constant Contact if they have not already done so. Fill out the other information as appropriate, but it is for informational purposes only.
Authorization Control Flow
You will need to set up a web page where your user can enter the API Key and Secret. You should also provide an "Authorize" button if the API returns an error, meaning it was not authorized. This allows the user to control the authorization process. Authorization needs to be done interactively. The user will have to log in to Constant Contact and then authorize the application. Once this is done, the app can run in the background and refresh the token daily and it should not expire or need to be reauthorized as long as the Secret has not been changed. Change the secret to require reauthorization.
The Authorization control flow is as follows:
1. Create A Client and Redirect to Authorization URL
$redirectURI = 'http://yourdomain/php_script_in_step2.php'; $client = new \PHPFUI\ConstantContact\Client($apiKey, $secret, $redirectURI); // set any scopes here, defaults to all scopes. Your user will need to accept what ever scopes you specify. \header('location: ' . $client->getAuthorizationURL());
The above will ask the user to authorize the app for the scopes you specified. The default is all scopes, but you can specify different scopes after constructing the client and before you authorize.
2. Retrieve the Code sent to the $redirectURI
$client->acquireAccessToken($_GET); // Save $client->accessToken and $client->refreshToken to the database // redirect back to your businesss logic (Step 3)
You have now recieved authorization to access the API according to the scopes you requested.
3. Use in your code
$client = new \PHPFUI\ConstantContact\Client($apiKey, $secret, $redirectURI); $client->accessToken = $accessTokenFromDatabase; $client->refreshToken = $refreshTokenFromDatabase; $listEndPoint = new \PHPFUI\ConstantContact\V3\ContactLists($client); $lists = $listEndPoint->get(); do { print_r($lists); $lists = $listEndPoint->next(); } while ($lists);
You can now access the API with the scopes you requested.
4. Refresh the token on a regular basis
$client->refreshToken(); // save $client->accessToken and $client->refreshToken to database.
The token will expire requiring your user to reauthorize your app unless you refresh the token. You should refresh the token on a regular basis to avoid reauthorization.
Versioning
Since the Constant Contact API is constantly being updated, this library will track all updates on a calendar based versioning schema. The major version will be the last two digits of the year the update was released. The minor version will be the month it was released. Any bug fixes will be a patch version. So V21.8.0 would be the first August 2021 version, and V21.8.1 would be a bug fix to V21.8. All bug fixes will be included in subsequent versions, so V21.9.0 would include all fixes from the V21.8 version. YAML changes are tracked nightly and a new version will be generated automatically. Multiple YAML changes in a month will be tracked as patch versions.
Full Class Documentation
License
PHPFUI/ConstantContact is distributed under the MIT License.
PHP Versions
This library only supports PHP 8.0 and higher versions of PHP. While we would love to support PHP from the late Ming Dynasty, the advantages of modern PHP versions far out weigh quaint notions of backward compatibility. Time to upgrade.
faixan23/constantcontact 适用场景与选型建议
faixan23/constantcontact 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.02k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 05 月 15 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「contact」 「constant」 「v3」 「object oriented」 「object-oriented」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 faixan23/constantcontact 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 faixan23/constantcontact 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 faixan23/constantcontact 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
PHP Magic Constants, even more powerful than an Enum
Symfony bundle to add arbitrary metadata to classes and their constants by annotation
A PSR-7 compatible library for making CRUD API endpoints
PhpConstant is a simple class containing useful functions which you can extend to your constant classes.
Reader and writer for text files with constant length values
`codekandis/constants-classes-translator` is a library to translate values from constants classes into values of another constants classes.
统计信息
- 总下载量: 1.02k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 20
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-05-15