Sign inSign up

orienteer/oposter

By orienteer

Updated almost 5 years ago

Image
1

1.6K

orienteer/oposter repository overview

Build Status Docker Pulls

OPoster

OPoster is a planning, scheduling and posting to social media networks. Publishing with OPoster is easy:

  1. Create what to post (aka content: text with some attached photos)
  2. Select where to publish the post: one or more channels (for example: some telegram channel, facebook page, etc.)
  3. Specify when to post
  4. Relax and wait:)

Inspired by feedbacks after the following articles about Orienteer:

OPoster supports:
Planned to support
  • Pikabu
  • Yandex Dzen
  • TikTok
  • Tumblr
  • Pinterest

If you need some network which is currently not in the list: please create an issue.

Installation Guide

There are 2 ways how you can install OPoster and start using it:

  1. Standalone installation via docker image
  2. As add-on module on pre-installed Orienteer instance
OPoster as standalone docker application

You can start OPoster by the following command:

docker run -it -p8080:8080 orienteer/oposter

For more advanced usage, it's recommended to used docker-compose. Here is template of docker-compose.yml file:

version: '2.1'
services:
   orienteer:
      image: orienteer/oposter:latest
      container_name: <Container name>
      network_mode: 'bridge'
      healthcheck:
          test: ["CMD-SHELL", "curl --fail -s -I http://localhost:8080 | grep 'HTTP/1.1' || exit 1"]
          interval: 5m
          timeout: 5s
      ports:
          - "8080:8080"
      volumes:
          - ./runtime:/app/runtime
          - ./maven-repository:/app/repository
      environment:
          - ORIENTDB_ADMIN_PASSWORD=<Admin Password>
          - ORIENTDB_GUEST_PASSWORD=<Guess Password?
          - JAVA_TOOL_OPTIONS=-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/runtime/heapdump.bin
OPoster as add-on module on pre-installed Orienteer

Please follow the following instruction:

  1. Login into your Orienteer instance under user with admin rights
  2. Navigate to page Schema and open tab Artifacts
  3. Click Add
  4. In modal window click Available Orienteer Modules
  5. Wait while list of modules will be loaded
  6. Select org.orienteer.oposter/oposter
  7. Click Install as Trusted (or Install as Untrusted if you are not sure in stability of OPoster)
  8. Click Reload Orienteer
  9. After awaiting ~30 seconds (depends on how heavy is your Orienteer instance) OPoster is installed as add-on and ready to be used

Formats Coverage

NetworkOnly TextText with one imageText with multiple images
Telegram:white_check_mark::white_check_mark::white_check_mark:
Facebook:white_check_mark::white_check_mark::x:
Vkontakte:white_check_mark::white_check_mark::white_check_mark:
Instagram:white_check_mark::white_check_mark::white_check_mark:
Twitter:white_check_mark::white_check_mark::white_check_mark:
Odnoklassniki:white_check_mark::white_check_mark::white_check_mark:

Social Media Setup Guide

Content is universal is can be sent to any supported platforms. But setup of platforms and channels requires some social-media-network related knowledge.

NatureOClassDescription
ContentOPContentOClass for universal content definition. You can specify title, content, when, images
ChannelOPChannelAbstract root OClass for all classes which social-media-network specific. For example for Facebook you should use OPFacebookPage and etc. Channels definition should contain everything required to allow OPoster to send to the channel. Please ready below specifics
Platform AppOPPlatformAppAbstract root OClass for an application on some social-media-network which will reflect your OPoster in that network and allows to post content. Platform App definition should contains everthing required to connect to corresponding network.
Telegram
NatureOClassPropertyDescription
Platform AppOPTelegramBotOClass to specify Telegram Bot details which will be used to distribute your content
Platform AppOPTelegramBottokenToken which you should obtain from @BotFather after Bot creation
ChannelOPTelegramChannelOClass to describe channel or group in telegram to distribute your content to
ChannelOPTelegramChanneltelegramChatIdChatId of a channel or group where to send content to. You can use GetIDs Bot to obtain that chatId: either forward message from your channel to this bot or add it to your group - it will display required chatId. Do not forget to add your bot into this channel/group!
Read More
Facebook
NatureOClassPropertyDescription
Platform AppOPFacebookAppOClass for specifying details about Facebook Application which needs to be created to post with OPoster
Platform AppOPFacebookAppappIdApplication Identification which corresponds to application created in Facebook. Please check settings page of your app
Platform AppOPFacebookAppappSecretApplication Secret string which was defined/generated by Vkontakte for your application
Platform AppOPFacebookAppappAccessTokenAccess Token for your application. Can be obtained automatically
Platform AppOPFacebookAppappAccessTokenExpiresExpiration date-time for access token of your application
ChannelOPFacebookConnectionOClass for defining details about destination to post in Facebook
ChannelOPFacebookConnectionfacebookIdId of user or group or page to post to. Should be positive or null.
ChannelOPFacebookConnectionpageBoolean flag to show that facebookId is actually id of a page.
ChannelOPFacebookConnectionacessTokenAccess Token for user or page to post. Can be obtained by clicking to button Connect OAuth
Read More
VKontakte
NatureOClassPropertyDescription
Platform AppOPVkAppOClass for specifying details about Vkontakte Application which needs to be created to post with OPoster
Platform AppOPVkAppappIdApplication Identification which corresponds to application created in VKontakte. Please check settings page of your app
Platform AppOPVkAppappSecretApplication Secret string which was defined/generated by Vkontakte for your application
Platform AppOPVkAppserviceTokenService Token which was defined/generated by Vkontakte for your application
Platform AppOPVkAppdefaultUserIdIdentification (integer) of a user to be used by default for posting on vkontakte. You can take it on your vk user's wall by copying and extracting id from link to photos. Commonly looks like https://vk.com/albums1234567?profile=1: here is 1234567 is userId
Platform AppOPVkAppdefaultUserAcessTokenAccess Token for user specified by id previously. Navigate to https://oauth.vk.com/authorize?client_id=<You App Id>&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=offline,wall,groups,video,photos&response_type=token&v=5.52, click accept and extract token from final page URL
ChannelOPVkWallOClass for defining details about wall in vkontakte you are going to post on
ChannelOPVkWallownerIdId of user or community to post to. Should be positive or null. Null means to post on wall of a specified user
ChannelOPVkWallcommunityBoolean flag to show that ownerId is actually id of a group or community
ChannelOPVkWalluserIdIdentification (integer) of a user to be used for posting on vkontakte. Overrides defaultUserId
ChannelOPVkWalluserAcessTokenAccess Token for user specified by id previously. Overrides defaultUserAccessTonen
Read More
Instagram
NatureOClassPropertyDescription
Platform AppOPIGAppOClass for association with Instagram. Last one doesn't allow to create your own application. So instance of this class should be created just nominally if you want to post to Instagram
ChannelOPIGAccountOClass for defining details about Instagram account to post to
ChannelOPIGAccountusernameInstagram handle of a user to post on behalf of
ChannelOPIGAccountpasswordPassword of a user to post on behalf of
Twitter
NatureOClassPropertyDescription
Platform AppOPTwitterAppOClass for specifying details about Twitter Application which needs to be created to post with OPoster
Platform AppOPTwitterAppapiKeyApplication Key which corresponds to application created in Twitter. Please check settings page of your app
Platform AppOPTwitterAppapiSecretKeyApplication Secret Key string which was defined/generated by Twitter for your application
ChannelOPTwitterAccountOClass for defining details about twitter account to post on
ChannelOPTwitterAccountaccessTokenAccess Token of a Twitter user to post on behalf of. Can be obtained by clicking button Connect OAuth
ChannelOPTwitterAccountaccessTokenSecretAccess Token Secret of a Twitter user to post on behalf of. Can be obtained by clicking button Connect OAuth
Read More
Odnoklassniki
NatureOClassPropertyDescription
Platform AppOPOkAppOClass for specifying details about Odnoklassniki Application which needs to be created to post with OPoster
Platform AppOPOkAppappIdApplication Identification which corresponds to application created in Odnoklassniki
Platform AppOPOkApppublicKeyPublic Key for the app in Odnoklassniki: check your email after app creation
Platform AppOPOkAppsecretKeySecret Key for the app in Odnoklassniki: check your email after app creation
ChannelOPOkChannelOClass for defining details about user, group/page in Odnoklassniki you are going to post on
ChannelOPOkChannelgroupIdId of a group/page to post to. Should be positive or null. Null means to post on wall of a specified user
ChannelOPOkChannelacessTokenAccess Token for a user to post on behalf of
Read More

Tag summary

Content type

Image

Digest

Size

315.3 MB

Last updated

almost 5 years ago

docker pull orienteer/oposter