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
}
}
}