Install Social media service
The Social Media service is required to publish content from censhare to social networks (Twitter, Facebook, YouTube). The service connects to the social media apps via the respective APIs.
Prerequisites
JDK 11.0.6 or higher must be installed on the host machine.
As entry point, a proxy such as Nginx or HAProxy must be installed. Usually, this is part of the censhare RPM package.
Developer accounts for each social network.
A Social media application for each social network. For a quick reference see the Create censhare social media applications below.
Introduction
The Social Media service is required to publish content from censhare to a social network. The Social Media service connects to the APIs of the social networks, authenticates the user, and publishes the desired content to the selected profile. From the social networks, the Social media service retrieves reactions to the posts. These reactions are displayed in the corresponding social media post assets in censhare.
To use the Social media service in censhare, you must create and configure the respective application in each social network to which you want to publish. This is done in the developer area of the social network.
The Social media service can be installed on the same host as the censhare Server, or on a dedicated host.
Create social media applications
Before you can set up the Social media service in censhare, you must register your censhare application in each Social network to which you want to publish content. The registration is done in the developer area of the respective network.
As operator of the censhare platform, you are held responsible towards the operator of the Social network for the conformity of your application as well as content published through the application with their respective terms and conditions.
The registration process, terms and conditions, as well as the published/retrieved data are subject to change.
Note: You can only publish content to a Facebook page. Before you create your app, you need a Facebook page to which your content is published. Posts on a user timeline are not allowed.
Go to https://developers.facebook.com/apps and create an app with the following Settings:
Settings - Basic
Value
Description
App ID
generated automatically
You need this value for the configuration of the Social media service.
App Secret
generated automatically
You need this value for the configuration of the Social media service.
Display name
[YOUR_APP]
This value displays as publisher of a post: "Published by [YOUR_APP]"
Contact Email
[YOUR_EMAIL]
Enter a valid e-mail address.
Settings - Advanced
Upgrade API Version
v7.0
Make sure to use API v7.0 for both settings.
Add Facebook Login product with the following settings:
Client OAuth Settings
Value
Description
Client OAuth Login
Yes
Enables the token flow. See also the Valid OAuth redirect URIs setting below.
Web OAuth Login
Yes
Required to log in from censhare Web.
Valid OAuth Redirect URIs
https://[YOUR_DOMAIN]/signin/facebook
The /signin context path must be configured as passing request entry in the proxy configuration.
To connect from censhare Web to your app, the respective permissions must be requested and approved by Facebook. To request permissions and initiate the review process, click Requests in the left menu and add the following permissions:
Permissions and Features
Action
Description
pages_manage_posts
request
These are the minimal required permissions. Other permissions can be requested, if desired.
pages_read_engagement
request
Copy or note the APP ID and the APP Secret. You need the values to configure the censhare Social Media Service. To display the APP Secret as plain text, Facebook asks you to enter your credentials.
Got to https://apps.twitter.com, register as developer and create a new app with the following parameters:
App details
Value
Description
Website URL
https://[YOUR_DOMAIN]/
To create an app, register as developer and add a new app in your personal account.
App Name
[YOUR_APPLICATION]
The app name does not display in the tweet.
Callback URL
[YOUR_DOMAIN]/signin/twitter
The URL handles the authentication and must be accessible externally.
Go to the Permissions tab and set the following permissions:
Permissions
Value
Access permissions
Read and Write
Go to the Key and tokens tab and copy the following parameters. You need these to configure the censhare Social media service:
API key
API secret key
YouTube
YouTube is part of the Google universe. To create a YouTube app, log in to the Google developer console. In Google, apps are called projects. This section takes you through the setup and registration process for your app.
Important note: YouTube offers quotas for API requests. By default, an app gets a free quota of 10,000 points per day. Uploading a video via your app costs 1600 points. Other API requests have their respective quotas. For more information, see the YouTube API Quota Calculator.
Go to https://console.developers.google.com/apis/credentials and create a new project with the following parameters:
Project info
Value
Description
Project name
[YOUR_APP_NAME]
The name cannot be changed later.
Project ID
[YOUR_APP_ID]
You can use the same ID as the name, or enter a different ID. The ID cannot be changed later.
Project number
generated automatically
After you have created your project, the project dashboard displays. In the APIs widget, click Go to APIs overview, and then ENABLE APIS AND SERVICES.
Select YouTube Data API v3 and click Enable.
Click CREATE CREDENTIALS and set the following parameters:
Add credentials
Value
Which API are you using?
YouTube Data API v3
Where will you be calling the API from?
Web server
What data will you be accessing?
User data
Click What credentials do I need? and in the dialog, click SET UP CONSENT SCREEN. The configuration dialog opens in a new tab. Do not close the Add credentials to your project dialog. You need to complete this configuration later.
Click CREATE and set up the OAuth consent screen as follows:
Note: If you use G-Suite, we recommend to select the user type Internal. This makes the app registration process easier, as internal apps do not require review by Google.
OAuth consent screen
Value
Description
Application name
[YOUR_APP]
Enter the name of your censhare platform.
Application logo
[YOUR_LOGO]
Add an optional logo that is shown in your app.
Support email
selected automatically
If you have registered multiple emails, you can select the desired address.
Scopes for Google APIs
email
Default. This value is preselected and cannot be changed.
profile
Default. This value is preselected and cannot be changed.
openid
Default. This value is preselected and cannot be changed.
Add scope - Click and enable the following scopes, then click ADD to save:
../auth/youtube.force-ssl
enable
../auth/youtube.upload
enable
Authorized domains
[YOUR_CENSHARE_WEB_DOMAIN]
We recommend that you always enter an authorized domain to ensure that the app can only be accessed from your censhare Web domain.
Go back to the Credentials dialog and complete the configuration as follows:
Add credentials to your project
Value
Description
Name
[YOUR_CLIENT]
Enter a client name.
Authorized redirect URIs
https://[YOUR_DOMAIN]/signin/google
After successful authorization, the Google server redirects to this URL. The URL must be accessible externally.
Click Create OAuth client ID. If the button does not display at the bottom of the page, click Refresh first.
Click Download to save your credentials to your computer in a JSON file. From this file, you need the client_id and the client_secret values to configure the proxy of the Social media service.
Configure the reverse proxy
The authentication and communication between the censhare Server, the Social media service, and the social networks APIs require a reverse proxy for the censhare Server. The reverse proxy must be accessible from external locations and requires a valid SSL certificate.
censhare is delivered with NGINX as default reverse proxy. Any other proxy such as Apache, HAProxy or LB5 can be used.
Following, we provide the parameters that must be added to the configuration of NGINX. If you are using a different reverse proxy in your censhare environment, configure the proxy accordingly:
On the host of the proxy service, go to the location of the configuration file. The default location for the NGINX configuration is /etc/nginx/nginx.conf.
Open the configuration file in an external editor, and add the following lines:
# SOCIAL MICRO-SERVICE: BEGIN location /connect/ { proxy_pass http://localhost:7056; } location /signin/ { proxy_pass http://localhost:7056; } location /api/social/ { proxy_pass http://localhost:7056; } # optional for debugging # location /h2-console/ { # proxy pass http://localhost:7056; # } # SOCIAL MICRO-SERVICE: END
Save your changes and restart the proxy.
Install the Social media service
The Social media service can be installed on the same host as the censhare Server, or any other host. The Social media service is provided as RPM package. It runs with censhare Web and censhare WP.
To install the service, proceed as follows:
Add the repository and install the package as described in Install and configure censhare WP. The package is part of the censhare Server repository.
Run the installation command:
yum install censhare-social-media-service
The installation creates the /opt/censer/social-media directory on the host server with the following content:
social-media.jar - executable JAR to run the Social media service.
application.yml - configuration file for the Social medial service.
Go to the social-media directory and create the db and dump subdirectories:
cd /opt/censer/social-media mkdir db mkdir dump
Open the application.yml file and configure the service as follows:
Parameter
Value
Comment
server.port
7056
To use another port, change the default value to the desired port.
client.spring-social-customizer.connect-
controller-application-url[CENSHARE_BASE_URL]
client.spring-social-customizer.sign-in-controller-application-url
[CENSHARE_BASE_URL]
client.spring-social-customizer.sign-in-controller-sign-up-url
/api/social/signup
To pass requests, the /api/social path must be added in the proxy configuration.
spring.h2.console.enabled
false
Only enable for testing and development purposes. In production environments must be set to false.
censhare.microservices.standalone-web-server.host
[CENSHARE_BASE_URL]
Enter the base URL of your censhare instance.
censhare.microservices.standalone-web-server.username
[USER_NAME]
Enter the system user to access the REST API of the censhare Server. Ensure that the system user has access to domains in which the published content (images, videos) is located. For example, the Media domain of the censhare Dedicated solutions.
censhare.microservices.standalone-web-server.password
[PASSWORD]
Enter the password of the system user to access the REST API of the censhare Server. (1)
censhare.microservices.standalone-web-server.timeout-ms
5000
Timeout limit in milliseconds. If necessary, change the value.
censhare.microservices.standalone-web-server.temp-download-folder
[DIRECTORY_NAME]
Create a directory for temporary storage item downloads from censhare. Default directory is dump.
client.access-control-allow-origins
[CENSHARE_BASE_URL], ...
Enter a comma separated list of hosts that can connect to the Social media service. The host of your censhare instance must be part of the list. Other hosts are optional.
client.signup-info-redirect-url
/
If you use a proxy service (for example: NGINX), redirect to the root directory.
client.signin-context
/signin/
If you change this value, you must change the callback/redirect URLs in your social media applications accordingly.
spring.social.facebook.app-id
${CS_SOC_FACEBOOK_APP_ID}
Enter the IDs and secrets of each social media app here. If you do not want to use a social media app, enter dummy values for the respective ID and secret. Alternatively, you can declare these as environment variables in an .env file. In this case, leave the placeholders as is.
spring.social.facebook.app-secret
${CS_SOC_FACEBOOK_APP_SECRET}
spring.social.twitter.app-id
${CS_SOC_TWITTER_APP_ID}
spring.social.twitter.app-secret
${CS_SOC_TWITTER_APP_SECRET}
spring.social.linkedin.app-id
${CS_SOC_LINKEDIN_APP_ID}
spring.social.linkedin.app-secret
${CS_SOC_LINKEDIN_APP_SECRET}
spring.social.youtube.app-id
${CS_SOC_GOOGLE_APP_ID}
spring.social.youtube.app-secret
${CS_SOC_GOOGLE_APP_SECRET}
logging.level.org.apache.http.client.protocol.ResponseProcessCookies
ERROR
Determines the level of details written into the log files.
logging.level.org.springframework.social.google
INFO
logging.level.com.censhare
INFO
To start the service, execute the following command:
systemctl start censhare-social-media
If the server is already running, use the restart parameter. To stop the server use the stop parameter
Result
The Social Media service is running in the censhare environment. This is a prerequisite to use authenticate at the social media apps from censhare Web, and to publish content through the Social Media Publishing wizard.