strimeapp/slackify

Slackify,一个用于与 Slack API 通信的面向对象的库

0.2.3 2019-09-18 09:29 UTC

This package is auto-updated.

Last update: 2024-09-18 20:50:57 UTC


README

Build Status Scrutinizer Code Quality Total Downloads License

Slackify 是一个 PHP 扩展,允许您与 Slack API 进行通信。

它最初是为 Strime 开发的。

安装

推荐通过 Composer 安装 Slackify。

$ composer require strimeapp/slackify

Webhooks

Slackify 允许您轻松地向 Webhooks 发送消息。

use Strime\Slackify\Webhooks\Webhook;

$webhook = new Webhook("https://hooks.slack.com/services/YOUR/WEBHOOK");

$webhook->sendMessage(array(
    "message" => "My first message",
    "username" => "Bobby",
    "icon" => "http://upshout.net/wp-content/uploads/2016/03/unicorn-002.jpg",
    "link" => "https://www.strime.io",
    "link_text" => "Strime"
));

icon 参数可以是图片的 URL,或表情符号代码(例如::taco:)。

link_text 参数是可点击的文本,如果您设置了 link 参数。

发送附件

如果您想随消息发送附件,可以在发送消息之前这样做:

use Strime\Slackify\Webhooks\Webhook;

$webhook = new Webhook("https://hooks.slack.com/services/YOUR/WEBHOOK");

$webhook->setAttachments(
    array(
        array(
            "fallback" => "A fallback text",
            "text" => "The text of your attachment",
            "color" => "#123456",
            "fields" => array(
                "title" => "My attachment",
                "value" => "The value of my attachment",
                "short" => FALSE
            )
        )
    )
);

$webhook->sendMessage(array(
    "message" => "My first message",
    "username" => "Bobby",
    "icon" => "http://upshout.net/wp-content/uploads/2016/03/unicorn-002.jpg",
    "link" => "https://www.strime.io",
    "link_text" => "Strime"
));
  • fallback:附件的纯文本摘要。此文本将在不显示格式化文本的客户端(例如:IRC、移动通知)中使用,不应包含任何标记。
  • color:类似于交通信号灯,消息的颜色编码可以快速传达意图并帮助将它们从时间线中的其他消息流中区分开来。这是一个可选值,可以是 goodwarningdanger 之一,或任何十六进制颜色代码(例如:#439FE0)。此值用于在消息附件的左侧边缘着色。
  • pretext:这是可选的文本,它将出现在消息附件块上方。
  • author:作者参数将在消息附件顶部显示一个小节,可以包含以下字段
    • author_name:用于显示作者名称的小型文本。
    • author_link:一个有效的 URL,将超链接上述 author_name 文本。只有当 author_name 存在时才会工作。
    • author_icon:一个有效的 URL,在 author_name 文本左侧显示一个 16x16 像素的图像。只有当 author_name 存在时才会工作。
  • title:标题作为靠近消息附件顶部的大号、粗体文本显示。可以通过传递有效的 URL 到 title_link 参数(可选)来使标题文本超链接。
  • 字段:
    • title:显示在值文本上方的粗体标题。它不能包含标记,并且会为您转义。
    • value:字段的文本值。它可以包含 标准消息标记,并且必须正常转义。可能是多行。
    • short:一个可选标志,表示值是否足够短,可以与其他值并排显示。
  • image_url:一个有效图像文件的 URL,将在消息附件内显示。我们目前支持以下格式:GIF、JPEG、PNG 和 BMP。大图像将被调整到最大宽度为 400 像素或最大高度为 500 像素,同时保持原始宽高比。
  • 缩略图URL:一个有效的图片文件URL,用于在消息附件的右侧显示为缩略图。我们目前支持以下格式:GIF、JPEG、PNG和BMP。缩略图的最长边将被缩放到75px,同时保持图像的宽高比。图片文件大小必须小于500 KB。为了获得最佳效果,请使用已经为75px x 75px的图片。
  • 页脚:添加一些简短的文本,以帮助用户理解并识别附件。限制为300个字符,在屏幕空间有限的环境中显示时可能会进一步截断。
  • 页脚图标:要在页脚文本旁边显示一个小图标,请在footer_icon字段提供一个公开可访问的URL字符串。您还必须为该字段提供footer,以便识别。我们将以16px x 16px的大小渲染您提供的图标。最好使用同样大小的图片。
  • ts:通过为ts字段提供一个整数值,以"纪元时间"的形式,附件将显示一个额外的时间戳值作为附件页脚的一部分。

API

Slackify还允许您轻松地向API发送请求。

为了实例化与API的连接,您需要一个令牌。您可以在这里生成测试令牌。

API文档的每个部分都有自己的类,对应相应的功能。

API

use Strime\Slackify\Api\Api;

// API request
$api_request = new Api("your-api-token-comes-here");
$api_request->test();

以下链接将提供关于这些方法,特别是变量和错误代码的更多详细信息

认证

use Strime\Slackify\Api\Auth;

// Auth requests
$api_auth_request = new Auth("your-api-token-comes-here");
$api_auth_request->revoke("a-token-to-revoke", TRUE);
$api_auth_request->test("a-token-to-test");

以下链接将提供关于这些方法的更多详细信息

机器人

use Strime\Slackify\Api\Bots;

// Bots requests
$api_bots_request = new Bots("your-api-token-comes-here");
$api_bots_request->info("B123456");

以下链接将提供关于这些方法的更多详细信息

use Strime\Slackify\Api\Channels;

// Channels requests
$api_channels_request = new Channels("your-api-token-comes-here");
$api_channels_request->archive("C123456");
$api_channels_request->create("C123456");
$api_channels_request->history("C123456", "now", 0, 0, 100, 0);
$api_channels_request->info("C123456");
$api_channels_request->invite("C123456", "U56789");
$api_channels_request->join("C123456");
$api_channels_request->kick("C123456", "U56789");
$api_channels_request->leave("C123456");
$api_channels_request->list_channels(0);
$api_channels_request->mark("C123456", time());
$api_channels_request->rename("C123456", "New name");
$api_channels_request->replies("C123456", time());
$api_channels_request->setPurpose("C123456", "New purpose");
$api_channels_request->setTopic("C123456", "New topic");
$api_channels_request->unarchive("C123456");

以下链接将提供关于这些方法的更多详细信息

聊天

use Strime\Slackify\Api\Chat;

// Chat requests
$api_chat_request = new Chat("your-api-token-comes-here");
$api_chat_request->delete(time(), "C12345");
$api_chat_request->meMessage("C12345", "foo bar");
$api_chat_request->postMessage("C12345", "foo bar", "full", 0);
$api_chat_request->update(time(), "C12345", "foo bar");

以下链接将提供关于这些方法的更多详细信息

勿扰

use Strime\Slackify\Api\Dnd;

// Dnd requests
$api_dnd_request = new Dnd("your-api-token-comes-here");
$api_dnd_request->endDnd();
$api_dnd_request->endSnooze();
$api_dnd_request->info("U12345");
$api_dnd_request->setSnooze(10);
$api_dnd_request->teamInfo("U12345,U67890");

以下链接将提供关于这些方法的更多详细信息

表情

use Strime\Slackify\Api\Emoji;

// Emoji requests
$api_emoji_request = new Emoji("your-api-token-comes-here");
$api_emoji_request->list_emoji();

以下链接将提供关于这些方法的更多详细信息

文件评论

use Strime\Slackify\Api\FilesComments;

// FilesComments requests
$api_files_comments_request = new FilesComments("your-api-token-comes-here");
$api_files_comments_request->add("F12345", "Foo bar", "U12345");
$api_files_comments_request->delete("F12345", "Fc12345");
$api_files_comments_request->edit("F12345", "Fc12345", "Foo bar");

以下链接将提供关于这些方法的更多详细信息

文件

use Strime\Slackify\Api\Files;

// Files requests
$api_files_request = new Files("your-api-token-comes-here");
$api_files_request->delete("F12345");
$api_files_request->info("F12345", 100, 1);
$api_files_request->list_files("U12345", "C12345", "now", "all", "all", 100, 1);
$api_files_request->revokePublicURL("F12345");
$api_files_request->sharedPublicURL("F12345");
$api_files_request->upload("test.txt", "/path/to/file", "text", "A title", "A comment", "C12345,C67890");

以下链接将提供关于这些方法的更多详细信息

use Strime\Slackify\Api\Groups;

// Groups requests
$api_groups_request = new Groups("your-api-token-comes-here");
$api_groups_request->archive("G12345");
$api_groups_request->close("G12345");
$api_groups_request->create("Foo bar");
$api_groups_request->createChild("G12345");
$api_groups_request->history("G12345", "now", "0", 0, 100, 1);
$api_groups_request->info("G12345");
$api_groups_request->invite("G12345", "U12345");
$api_groups_request->kick("G12345", "U12345");
$api_groups_request->leave("G12345");
$api_groups_request->list_groups(1);
$api_groups_request->mark("G12345", (string)time());
$api_groups_request->open("G12345");
$api_groups_request->rename("G12345", "Foo bar");
$api_groups_request->replies("C12345", time());
$api_groups_request->setPurpose("G12345", "Foo bar");
$api_groups_request->setTopic("G12345", "Foo bar");
$api_groups_request->unarchive("G12345");

以下链接将提供关于这些方法的更多详细信息

即时消息

use Strime\Slackify\Api\Im;

// Im requests
$api_im_request = new Im("your-api-token-comes-here");
$api_im_request->close("D12345");
$api_im_request->history("G12345", "now", "0", 0, 100, 1);
$api_im_request->list_im();
$api_im_request->mark("D12345", time());
$api_im_request->open("U12345", TRUE);
$api_im_request->replies("D12345", time());

以下链接将提供关于这些方法的更多详细信息

多人群聊

use Strime\Slackify\Api\Mpim;

// Mpim requests
$api_mpim_request = new Mpim("your-api-token-comes-here");
$api_mpim_request->close("D12345");
$api_mpim_request->history("G12345", "now", "0", 0, 100, 1);
$api_mpim_request->list_mpim();
$api_mpim_request->mark("D12345", time());
$api_mpim_request->open("U12345,U67890", TRUE);
$api_mpim_request->replies("D12345", time());

以下链接将提供关于这些方法的更多详细信息

OAuth

use Strime\Slackify\Api\Oauth;

// Oauth requests
$api_oauth_request = new Oauth("your-api-token-comes-here");
$api_oauth_request->access("client_id", "client_secret", "code", "https://www.foo.com");

以下链接将提供关于这些方法的更多详细信息

固定

use Strime\Slackify\Api\Pin;

// Pin requests
$api_pin_request = new Pin("your-api-token-comes-here");
$api_pin_request->add("C12345", "F12345", "Fc12345", time());
$api_pin_request->list_pin("C12345");
$api_pin_request->remove("C12345", "F12345", "Fc12345", time());

以下链接将提供关于这些方法的更多详细信息

反应

use Strime\Slackify\Api\Reactions;

// Reactions requests
$api_reactions_request = new Reactions("your-api-token-comes-here");
$api_reactions_request->add("F12345", "Fc12345", "C12345", time());
$api_reactions_request->get("F12345", "Fc12345", "C12345");
$api_reactions_request->list_reactions("U12345", TRUE);
$api_reactions_request->remove("F12345", "Fc12345", "C12345", time());

以下链接将提供关于这些方法的更多详细信息

提醒

use Strime\Slackify\Api\Reminders;

// Reminders requests
$api_reminders_request = new Reminders("your-api-token-comes-here");
$api_reminders_request->add("Foo", time(), "U12345");
$api_reminders_request->complete("Rm12345");
$api_reminders_request->delete("Rm12345");
$api_reminders_request->info("Rm12345");
$api_reminders_request->list_reminders();

以下链接将提供关于这些方法的更多详细信息

RTM

use Strime\Slackify\Api\Rtm;

// Rtm requests
$api_rtm_request = new Rtm("your-api-token-comes-here");
$api_rtm_request->start(TRUE, FALSE, TRUE);

以下链接将提供关于这些方法的更多详细信息

搜索

use Strime\Slackify\Api\Search;

// Search requests
$api_search_request = new Search("your-api-token-comes-here");
$api_search_request->all("pickleface", "score", "asc", TRUE, 20, 3);
$api_search_request->files("pickleface", "timestamp", "asc", TRUE, 20, 3);
$api_search_request->messages("pickleface", "timestamp", "asc", TRUE, 20, 3);

以下链接将提供关于这些方法的更多详细信息

星星

use Strime\Slackify\Api\Stars;

// Search requests
$api_stars_request = new Stars("your-api-token-comes-here");
$api_stars_request->add("F12345", "Fc12345", "C12345", time());
$api_stars_request->list_stars(20, 3);
$api_stars_request->remove("F12345", "Fc12345", "C12345", time());

以下链接将提供关于这些方法的更多详细信息

团队

use Strime\Slackify\Api\Team;

// Search requests
$api_team_request = new Team("your-api-token-comes-here");
$api_team_request->accessLogs(100, 2, "now");
$api_team_request->billableInfo("U12345");
$api_team_request->info();
$api_team_request->integrationLogs("foo", "bar", "U12345", "foo", 20, 2);
$api_team_request->profile.get("all");

以下链接将提供关于这些方法的更多详细信息

用户组

use Strime\Slackify\Api\UserGroups;

// Search requests
$api_user_groups_request = new UserGroups("your-api-token-comes-here");
$api_user_groups_request->create("foo", "bar", "description", "C12345,C67890");
$api_user_groups_request->disable("S12345", TRUE);
$api_user_groups_request->enable("S12345", TRUE);
$api_user_groups_request->list_usergroups(TRUE, FALSE, TRUE);
$api_user_groups_request->update("S12345", "Foo", "bar", "description", "C12345,C67890", TRUE);
$api_user_groups_request->users.list("S12345", TRUE);
$api_user_groups_request->users.update("S12345", "U12345,U67890", TRUE);

以下链接将提供关于这些方法的更多详细信息

用户

use Strime\Slackify\Api\Users;

// Search requests
$api_users_request = new Users("your-api-token-comes-here");
$api_users_request->deletePhoto();
$api_users_request->getPresence("U12345");
$api_users_request->identity();
$api_users_request->info("U12345");
$api_users_request->list_users(TRUE);
$api_users_request->setActive();
$api_users_request->setPresence("away");

以下链接将提供关于这些方法的更多详细信息

用户配置文件

use Strime\Slackify\Api\UsersProfile;

// Search requests
$api_users_profile_request = new UsersProfile("your-api-token-comes-here");
$api_users_profile_request->get("U12345", TRUE);
$api_users_profile_request->set("U12345", "{first_name: 'Bobby', last_name: 'Brown'}");

以下链接将提供关于这些方法的更多详细信息