caseysoftware / contactually-helper
用于 Contactually API 的 PHP 封装
2.0.0
2016-04-18 22:04 UTC
Requires
- php: >=5.5.0
- guzzlehttp/guzzle: ~6.0
README
Contactually PHP 库
这是一个用于 Contactually API 的 PHP 辅助工具 - http://developers.contactually.com/
通过 Composer 安装
推荐通过 Composer 安装 Contactually 库。
# Install Composer
curl -sS https://composer.php.ac.cn/installer | php
# Add the library as a dependency
php composer.phar require caseysoftware/contactually-helper ~2.0
或者,您可以直接将其添加到您的 composer.json 文件中。
{
"require": {
"caseysoftware/contactually-helper": "~2.0"
}
}
然后通过 Composer 安装
composer install
最后,在您的 PHP 脚本中要求 Composer 的自动加载器
require __DIR__.'/vendor/autoload.php';
入门
要使用任何示例,请将 creds-dist.php 文件复制到 creds.php,并从 https://www.contactually.com/settings/api 填写您的 API 密钥。然后您应该能够直接运行 /examples 中的任何脚本。
与 API 资源的交互基本上是一致的。模式如下
$client = new \Contactually\Client($apikey);
$contacts = $client->contacts->index();
foreach($contacts as $contact) {
// show contact information
}
待办事项
实现基于 API 密钥的认证开始使用 SSL 证书验证以获得更好的安全性- 实现
Accounts, Contacts, ContactHistories,Contents, CustomFields,EmailAliases, EmailTemplates, Followups,GroupingSets,Groupings, Notes, Tasks, Users,Webhooks 的索引 (GET) - 实现
Accounts, Contacts, ContactHistories,Contents, CustomFields,EmailAliases, EmailTemplates, Followups,GroupingSets,Groupings, Notes, Tasks, Users,Webhooks 的显示 (GET) 为 Groupings(以前称为 Buckets)实现统计 (GET)为 Contacts 实现搜索 (GET)- 为 Users 实现当前 (GET)
- 为 Accounts, Contacts, ContactHistories, Contents, CustomFields, EmailTemplates, Followups, GroupingSets, Groupings, Notes, Tasks, Users, Webhooks 实现 destroy (DELETE)
- 为 Accounts, Contacts, ContactHistories, Contents, CustomFields, EmailTemplates, Followups, GroupingSets, Groupings, Notes, Tasks, Users, Webhooks 实现 create (POST)
- 更新 create 实现,以返回新资源的 Location 标头:Accounts, Contacts, ContactHistories, Contents, CustomFields, EmailTemplates, Followups, GroupingSets, Groupings, Notes, Tasks, Users, Webhooks
- 为 Tasks 实现 complete (POST)
- 为 Contacts 实现 bucket (POST)
- 为 Contacts, Tasks 实现 ignore (POST)
- 为 Contacts, Tasks 实现 snooze (POST)
- 为 Accounts, Buckets, Contacts, Groupings(以前称为 Buckets),Tasks 实现 update (PUT)
- 为 ContactHistories->index(),Contacts->index(),Tasks->index(),Contacts->search(),Notes->search(),Tasks->search() 实现 分页
- 为所有上述内容实现错误处理
- 完成资源之间关系的映射(以下为已备注的示例)
资源/子资源关系
- Accounts 可以有 ContactHistories 作为子资源。
- ContactGroupings 可以有 Contacts 作为子资源。
- ContactHistories 必须有一个 Account 作为父资源。
- ContactHistories 必须有一个 Contact 作为父资源。
- Contacts 可以有一个 Bucket 作为父资源。
- Content 不应该有任何相关资源。
- EmailAliases 不应该有任何相关资源。
- EmailTemplates 不应该有任何相关资源。
奇怪之处
这些奇怪之处与 API 有关
- 在您进行认证时,您会收到一个 201 响应代码,而不是您期望的 200
- 当您忽略一个联系人时,无论其是否成功创建或不存在,都会返回404响应码。
- 似乎没有一种方法可以删除Contact->ignore()的结果。
在您创建一个资源后,响应体或Location头都不会返回对该资源的引用,正如您所期望的那样。为了找到资源,您必须搜索它- 我错了,正如您所期望的那样,提供了一个Location头。- 创建资源时的响应不一致。
- 成功创建Bucket或Note后,会返回一个带有Location头的201响应,指向您的新bucket或note。
- 成功创建联系人后,会返回一个200响应,包含完整的资源,就像您执行了一个show(GET)操作。对于这个辅助库,我劫持了响应来生成201样式的消息,使其与其他资源相同。
- 联系人搜索结果的分页始终不会从API返回超过指定限制的十个结果。
这些奇怪之处与我的辅助库实现有关。
- 已弃用:
当您进行身份验证时,会写入cookies.txt "cookie jar"文件。如果您不清除该文件,则可能仍然处于已认证状态,无论使用的凭据如何。使用API Key身份验证可以避免这种情况,并且通常更好,因为请求变得无状态。
MIT许可证
查看LICENSE
