Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/orienteerbap/oposter

Scheduling Platform for Social Media Networks. Powered by Orienteer
https://github.com/orienteerbap/oposter

delayed orienteer publishing schedule scheduler

Last synced: 16 days ago
JSON representation

Scheduling Platform for Social Media Networks. Powered by Orienteer

Awesome Lists containing this project

README

        

[![Build Status](https://travis-ci.org/OrienteerBAP/OPoster.svg?branch=master)](https://travis-ci.org/OrienteerBAP/OPoster) [![Docker Pulls](https://img.shields.io/docker/pulls/orienteer/oposter.svg)](https://hub.docker.com/r/orienteer/oposter/)

# 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:

* ENG: [How to Build Posts Scheduler with Almost No-Coding](https://medium.com/orienteer/how-to-build-posts-scheduler-with-almost-no-coding-b52068f8c23b)
* RUS: [Свой сервис отложенного постинга и почти без кода](https://habr.com/ru/company/orienteer/blog/530388/)

### OPoster supports:

- [X] [Telegram](#telegram)
- [X] [Facebook](#facebook)
- [X] [Vkontakte](#vkontakte)
- [X] [Instagram](#instagram)
- [X] [Twitter](#twitter)
- [X] [Odnoklassniki](#odnoklassniki)

### 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](https://github.com/OrienteerBAP/OPoster/issues).

## Installation Guide

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

1. Standalone installation via [docker image](https://hub.docker.com/repository/docker/orienteer/oposter)
2. As add-on module on pre-installed [Orienteer](https://github.com/OrienteerBAP/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:

```yml
version: '2.1'
services:
orienteer:
image: orienteer/oposter:latest
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=
- ORIENTDB_GUEST_PASSWORD=&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 |
| Channel | OPVkWall | | OClass for defining details about wall in vkontakte you are going to post on |
| Channel | OPVkWall | ownerId | Id of user or community to post to. Should be positive or null. Null means to post on wall of a specified user |
| Channel | OPVkWall | community | Boolean flag to show that `ownerId` is actually id of a group or community |
| Channel | OPVkWall | userId | Identification (integer) of a user to be used for posting on vkontakte. Overrides `defaultUserId` |
| Channel | OPVkWall | userAcessToken | Access Token for user specified by id previously. Overrides `defaultUserAccessTonen` |

#### Read More

* [VKontakte Dev Home](https://vk.com/apps?act=manage)
* [Why wall authorization is too complex?](https://habr.com/ru/post/179953/)

### Instagram

| Nature | OClass | Property | Description |
|--------|--------|----------|-------------|
| Platform App | OPIGApp | | OClass 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 |
| Channel | OPIGAccount | | OClass for defining details about Instagram account to post to |
| Channel | OPIGAccount | username | Instagram handle of a user to post on behalf of |
| Channel | OPIGAccount | password | Password of a user to post on behalf of |

### Twitter

| Nature | OClass | Property | Description |
|--------|--------|----------|-------------|
| Platform App | OPTwitterApp | | OClass for specifying details about Twitter Application which needs to be created to post with OPoster |
| Platform App | OPTwitterApp | apiKey | Application Key which corresponds to application created in Twitter. Please check settings page of your app |
| Platform App | OPTwitterApp | apiSecretKey | Application Secret Key string which was defined/generated by Twitter for your application |
| Channel | OPTwitterAccount | | OClass for defining details about twitter account to post on |
| Channel | OPTwitterAccount | accessToken | Access Token of a Twitter user to post on behalf of. Can be obtained by clicking button **Connect OAuth** |
| Channel | OPTwitterAccount | accessTokenSecret | Access Token Secret of a Twitter user to post on behalf of. Can be obtained by clicking button **Connect OAuth** |

#### Read More

* [Twitter Dev Home Page](https://developer.twitter.com/apps)

### Odnoklassniki

| Nature | OClass | Property | Description |
|--------|--------|----------|-------------|
| Platform App | OPOkApp | | OClass for specifying details about Odnoklassniki Application which needs to be created to post with OPoster |
| Platform App | OPOkApp | appId | Application Identification which corresponds to application created in Odnoklassniki |
| Platform App | OPOkApp | publicKey | Public Key for the app in Odnoklassniki: check your email after app creation |
| Platform App | OPOkApp | secretKey | Secret Key for the app in Odnoklassniki: check your email after app creation |
| Channel | OPOkChannel | | OClass for defining details about user, group/page in Odnoklassniki you are going to post on |
| Channel | OPOkChannel | groupId | Id of a group/page to post to. Should be positive or null. Null means to post on wall of a specified user |
| Channel | OPOkChannel | acessToken | Access Token for a user to post on behalf of |

#### Read More

* [Page to request dev access](https://ok.ru/devaccess)
* [List of your apps](https://ok.ru/vitrine/myuploaded)
* [How to create app in Odnoklassniki](https://apiok.ru/dev/app/create)
* [Odnoklassniki REST methods](https://apiok.ru/dev/methods/rest/)
Remember, that you have to work with support to get required rights for your application: **PUBLISH_TO_STREAM;VALUABLE_ACCESS;LONG_ACCESS_TOKEN;PHOTO_CONTENT;GROUP_CONTENT**