jippi / php-hipchat-connect
此包已被弃用且不再维护。未建议替代包。
HipChat 连接 (v2) API 辅助工具
dev-master
2015-11-11 16:53 UTC
Requires
- cakephp/validation: ^3.1
This package is auto-updated.
Last update: 2024-06-14 06:33:45 UTC
README
此工具包将帮助您构建有效的 HipChat 连接清单文件。
它提供了对最重要键的基本验证,并帮助您避免数小时的令人沮丧的调试,通过引导您通过流畅且一致的界面来配置您的 HipChat Connect 清单文件。
如果在验证过程中发现任何错误,将抛出 HipChat\Exception\ValidationException
异常。此异常实例具有 getValidationErrorCount
和 getValidationErrors
方法,以帮助检查发现的验证错误。
大部分代码目前位于 HipChat\Manifest\AbstractNode
和 HipChat\Manifest\Capabilities
类中。
工具包使用 cakephp/validation
进行数据验证
安装
composer.json
{ "minimum-stability": "dev", "require": { "jippi/php-hipchat-connect": "dev-master" } }
运行 composer install
或
composer require jippi/php-hipchat-connect
示例
<?php require 'vendor/autoload.php'; $generator = new \HipChat\Manifest\Generator(); $generator->name = 'Example App'; $generator->description = 'An integration that does wonderful things with examples'; $generator->key = 'com.example.demo'; $generator->vendor() ->set('name', 'Bownty') ->set('url', 'bownty.com'); $generator->links() ->set('homepage', 'https://addon.example.com/') ->set('self', 'https://addon.example.com/capabilities'); $generator->capabilities() ->webhook('email_sniffer') ->set('url', 'https://addon.example.com/email_sniffer') ->set('pattern', '[@]') ->set('event', 'room_message') ->set('authentication', 'none') ->set('name', 'E-mail sniffer'); $generator->capabilities() ->action('demo') ->set('key', 'message.reminder') ->set('name', ['value' => 'Set reminder']) ->set('target', 'message.reminder.dialog') ->set('location', 'hipchat.message.action'); $generator->capabilities() ->dialog('demo') ->set('key', 'meh') ->set('title', ['value' => 'Add Reminder']) ->set('url', 'https://addon.example.com/message/reminders') ->set('options', ['filter' => ['placeholder' => ['value' => 'muh']]]); $generator->capabilities() ->glance('demo') ->set('key', 'meh') ->set('icon', [ 'url' => 'https://addon.example.com/small.jpg', 'url@2x' => 'https://addon.example.com/small@2x.jpg' ]) ->set('name', ['value' => 'Locked Repositories']) ->set('target', ['value' => 'locked.repos.sidebar']) ->set('queryUrl', 'https://addon.example.com/glance/example'); $generator->capabilities() ->installable() ->set('allowGlobal', true) ->set('allowRoom', true); $generator->validate(); echo json_encode($generator); ?>
将输出
{ "name": "Example App", "description": "An integration that does wonderful things with examples", "key": "com.example.demo", "vendor": { "name": "Bownty", "url": "bownty.com" }, "links": { "homepage": "https://addon.example.com/", "self": "https://addon.example.com/capabilities" }, "capabilities": { "action": [ { "key": "message.reminder", "name": { "value": "Set reminder" }, "target": "message.reminder.dialog", "location": "hipchat.message.action" } ], "webhook": [ { "url": "https://addon.example.com/email_sniffer", "pattern": "[@]", "event": "room_message", "authentication": "none", "name": "E-mail sniffer" } ], "dialog": [ { "key": "meh", "title": { "value": "Add Reminder" }, "url": "https://addon.example.com/message/reminders", "options": { "filter": { "placeholder": { "value": "muh" } } } } ], "glance": [ { "key": "meh", "icon": { "url": "https://addon.example.com/small.jpg", "url@2x": "https://addon.example.com/small@2x.jpg" }, "name": { "value": "Locked Repositories" }, "target": { "value": "locked.repos.sidebar" }, "queryUrl": "https://addon.example.com/glance/example" } ], "installable": { "allowGlobal": true, "allowRoom": true } } }