tomasvotruba/statie-tweet-publisher

This package is abandoned and no longer maintained. The author suggests using the symplify/statie package instead.
There is no license information available for the latest version (v1.7.0) of this package.

Statie Plugin that automates tweet posting from Posts

v1.7.0 2018-11-05 07:48 UTC

This package is auto-updated.

Last update: 2019-02-20 20:01:27 UTC


README

Let Statie & Travis publish Tweets for your new posts fo you.

Install

composer require tomasvotruba/statie-tweet-publisher:@dev --dev

Configure

# statie.yml
imports:
    - { resource: 'vendor/tomasvotruba/statie-tweet-publisher/src/config/config.yml' }

parameters:
    twitter_name: 'VotrubaT'
    source_directory: '%kernel.project_dir%/../../../source'
    # set 0 for testing
    minimal_gap_in_days: 1 # how many days to wait before publishing another Tweet

Get Twitter Tokens

  • Go to https://apps.twitter.com/app/new
  • Login under account you want to publish in and create new Application
  • Then go to "Keys and Access Tokens"
  • In the bottom click to "Create my access token"

Now the secret part, be careful about your keys!

  • Add config/config.local.yml to .gitignore

  • Copy these 4 hashes you see in the page to config/config.local.yml

    # config/config.local.yml
    parameters:
        # for tomasvotruba/statie-tweet-publisher package locally
        twitter_consumer_key: "..."
        twitter_consumer_secret: "..."
        twitter_oauth_access_token: "..."
        twitter_oauth_access_token_secret: "..."
  • Import this file in statie.yml under the package config, so it has bigger priority and you can test it locally

    # statie.yml
    imports:
        - { resource: 'vendor/tomasvotruba/statie-tweet-publisher/src/config/config.yml' }
        # enabled on localhost only
        - { resource: 'config/config.local.yml', ignore_errors: true }
  • Add tweet: "some tweet" to headline of your post to test it

  • Run vendor/bin/publish-new-tweet and check your Twitter account

Is it there? Good, it works and only few steps remain to fully automate this :)

Setup Travis Online

Now we only put that logic on Travis and we're done.

  • Open Travis for your repository, e.g. https://travis-ci.org/TomasVotruba/tomasvotruba.cz
  • Got to More options => Settings
  • In Environment Variables add 4 variables with they values. They are hidden by default, so don't worry:
    • TWITTER_CONSUMER_KEY
    • TWITTER_CONSUMER_SECRET
    • TWITTER_OAUTH_ACCESS_TOKEN
    • TWITTER_OAUTH_ACCESS_TOKEN_SECRET
  • Then setup cron, so posts are being published even if you don't write and have a break.
  • Go to Cron Jobsmaster branch → DailyAlways run → Add

That its!

  • And let .travis.yml know, that he should publish it

    # .travis.yml
    language: php
    
    matrix:
        include:
            - php: 7.1
              env: TWEET=1
    
    script:
        # tweets posts
        - if [[ $TRAVIS_BRANCH == "master" && $TRAVIS_PULL_REQUEST == "false" && $TWEET != "" ]]; then vendor/bin/publish-new-tweet; fi

Now you can quit Twitter if you want and you posts will be still there :)