Skip to content

hametuha/hameslack

Repository files navigation

HameSlack

Tags: slack
Contributors: hametuha, Takahashi_Fumiki
Tested up to: 6.9
Stable Tag: nightly
License: GPLv3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.txt

A Slack utility for WordPress.

Description

This plugin integrates Slack and WordPress.

Core Conception

By default, this plugin does nothing. It's true. Slack has many API integration, but hameslack uses 2 of them.

Upper is easier. This plugin helps the connection between Slack and WordPress and you can concentrate on what you should do with slack.

Use Cases

Here is a list of use case of us on WordPress with many editors.

  • Easy Post notification to slack if some post is awaiting review.
  • Difficult Post access summary to slack once a week, because my colleague doesn't open Google Analytics.
  • Very Difficult Convert slack conversation to single post and make interview post.

For more details, please read the Addons documentation.

How to Integrate

The simplest usage is post to slack. You can do like below:

do_action( 'hameslack', $text_to_post, $attachments, $channel );

Function hameslack_post( $content, $attachment, $channel ) is also available, but I prefer to use do_action to avoid annoying if ( function_exists('func_name')) .

Everything works fine if you set properly.

Deprecated API

  • Sending Invitation deprecated at 2.0: this endpoint was unofficial and official one is only for Enterprise grid. Users now can send invitation reqeust from their profile page.
  • Outgoind Webhook deprecated at 2.0: Slack recommends Events API instead.

Install

From Plugin Repository

Click install and activate it.

From GitHub

Download from Releases and you can use it. Any pull requests are welcomed.

Enter Credentials

To post a message to slack, you need Payload URL. Create an app and activate "Incoming Webhooks". Now you can get payload URL.

To get Bot Token, go to "OAuth & Permissions". By installing your app to your workspace, Bot token will be generated.

Do something

As mentioned above, this plugin does nothing by default. Enable built-in addons from the settings page, or read the Addons documentation to write your own.

If you have any request, please make issue on github.

Development

This plugin requires custom code to work with your Slack workspace. Here's how to set up a local development environment.

Prerequisites

Getting Started

# Install dependencies
npm install
composer install

# Start WordPress local environment
npm start

# Build assets
npm run package

# Watch for changes during development
npm run watch

Receiving Slack Webhooks Locally

Slack requires a public HTTPS URL for Event Subscriptions and Interactive Components. Use Cloudflare Tunnel to expose your local environment:

# In a separate terminal, start the tunnel
npm run tunnel

This gives you a temporary public URL like https://random-name.trycloudflare.com. Then:

  1. Go to your Slack App settings
  2. Update Event Subscriptions Request URL to https://random-name.trycloudflare.com/wp-json/hameslack/v1/...
  3. Update Interactivity & Shortcuts Request URL similarly
  4. The URL changes each time you restart the tunnel

Note: Make sure WordPress permalink settings are not set to "Plain" — pretty permalinks are required for /wp-json/ to work through the tunnel.

NPM Scripts

Command Description
npm start Start wp-env
npm run package Build all assets (CSS + JS)
npm run watch Watch for file changes
npm run tunnel Open Cloudflare Tunnel to localhost:8888
npm run lint Run ESLint + Stylelint
npm run fix Auto-fix lint errors
npm test Run PHPUnit tests

Screenshots

  1. You can create such kind of bot.
  2. You can set up everything on setting screen.
  3. You can create Outgoing Webhooks as custom post type.

Changelog

2.2.0

  • Add hook-based addon system with settings UI.
  • Add built-in addons: Pending Review Notify (Incoming Webhook sample) and Slash Command Dashboard (Bot Token sample).
  • Fix double URL-encoding in hameslack_bot_request() for POST requests.

2.1.0

  • Bump required versions: PHP 7.4 and WP 6.6

2.0.0

  • Remove invitation feature and users now can send a simple message to specific channel to request invitation.
  • Bot is required.

1.2.0

  • If gianism is enabled, you can log in with Slack account.

1.1.1

  • Bugfix on REST API.

1.1.0

  • Add invitation request feature.

1.0.2

  • Add auto deploy.

1.0.0

  • First release.

About

Slack integration plugin for WordPress.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors