Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implemented: Url link shorten handler plugin system #10

Merged

Conversation

brookinsconsulting
Copy link
Contributor

This system of url link shorten handlers is ini setting configurable and enabled via workflow edit view option.

Handlers tested and supported by default out of the box:

  • is.gd
  • to.ly
  • v.gd
  • tinyurl.com
  • goo.gl
  • bit.ly
  • ow.ly

The default link shortening service is: is.gd. We support this by default because it does not require an api key to use the service.

Also worth noting we were going to default to to.ly as suggested by @l0rdJ but during testing the service went offline for longer than 10min (not a good sign of reliability for a service) also when we found their network status page in google cache, http://stats.to.ly the page shows they have a whole lot of downtime regularly (sometimes for hours) all this led us to choose a more reliable service to use as the default.

The link shortening workflow option is disabled by default. This is important because some services like linkedin or twitter have their own url shortening services built-in that shorten urls in messages on the fly and as such may not need another service (we found this out after development during testing). Still some prefer to use their favorite 3rd party url shortening services regardless (some like bit.ly for their statistics tracking and other features).

Link shortening services goo.gl, bit.ly and ow.ly all require an api key which must be configured in a settings override of settings/nxcsocialnetworks.ini.append.php and ini caches cleared. These services have all been tested and work the same as the rest.

Please let us know what you think!

Cheers,
Brookins Consulting

@brookinsconsulting
Copy link
Contributor Author

Hello,

We have greatly refactored the link shorten handler system's internals to be cleaner and more efficient.

We have greatly expanded the functionality of the bin/php/nxcLinkShortenTest.php script and transformed it into a full fledged ezcli script with several optional parameters to make it truly useful for the long term.

We have also changed the default link shortening service from is.gd to goo.gl. We have done this because out of all the vendors who do not require an api key we feel goo.gl is going to be the most reliable out of the box for everyone.

Also during our refactoring we tested goo.gl again and found it does not actually require an api key, you can add one into the configuration for additional backend functionality but it's not required for use.

We would like to default to bit.ly but sadly they do require an api key. Still, this is a very flexible and configurable feature and users are free to use any provider they wish if they fear goo.gl controlling their short links. And as always the service handlers are very simple if the user wishes to create a new service handler for another less widely known service.

Worth noting we tried to add all the popular link shortening services we could find! If you find a service you wish to be supported simply send us a message to info at brookinsconsulting dot com and we will be happy to help.

Please let us know what you think!

Cheers,
Brookins Consulting

SerheyDolgushev added a commit that referenced this pull request Sep 4, 2014
Implemented: Url link shorten handler plugin system
@SerheyDolgushev SerheyDolgushev merged commit 4919852 into nxc:master Sep 4, 2014
@SerheyDolgushev
Copy link
Member

Thanks for your great contribution!

@brookinsconsulting brookinsconsulting deleted the link-shorten-handlers branch October 25, 2014 19:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants