Sunday, July 22, 2018

Post to facebook page from php

Facebook has very weird documentation. If you have facebook page and want to post on page with php script here what you need:

1. Facebook page
2. Your user never ending access token. Here normal guide how to get it https://medium.com/@Jenananthan/how-to-create-non-expiry-facebook-page-token-6505c642d0b1
3. Get your pageId. Go to your page Information (or About)->In the very bottom your pageId. At the moment of the article it is here https://www.facebook.com/pg/<pageUrl>/about/. Where <pageUrl> is your facebook page slug.
4. Get facebook php sdk  https://github.com/facebook/php-graph-sdk with composer

composer require facebook/graph-sdk
Note: this command is good at the moment of this article. But you better go to github and copy, because they can change it.


Now here the script


$appId = ''; //your App Id
$appSecret = ''; //your app secret
$pageId = '0000000000'; //id of the page you want to publish on
$userAccessToken = ''; //Your never expire user access token

$fb = new \Facebook\Facebook([
    'app_id' => $appId,
    'app_secret' => $appSecret,
    'default_graph_version' => 'v3.0',
]);
$linkData = [
    'link' => 'http://google.com', //TODO  change
    'message' => "My message", //TODO  change
];


$longLivedToken = $fb->getOAuth2Client()->getLongLivedAccessToken($userAccessToken);
$fb->setDefaultAccessToken($longLivedToken);
$response = $fb->sendRequest('GET', $pageId, ['fields' => 'access_token'])
    ->getDecodedBody();

$foreverPageAccessToken = $response['access_token'];
$fb->setDefaultAccessToken($foreverPageAccessToken);
$response = $fb->post("/$pageId/feed", $linkData);
Note: If you're using github then values for first 4 variables should be outside of git. For example in env file or php file which is in gitignore.

Sunday, July 15, 2018

php get substring after character or word


Here we will get substring after word '/'
$item = 'posts/p10504';

substr(strrchr($item, '/'),1);
substr($item , strpos($item , '/') + 1);

//both lines has value of p10504

Tuesday, June 19, 2018

[Solved] LombokProcessor could not be initialized

switch jdk to 1.8
If you use intellij got to file->project structure->project and choose 1.8 jdk

Friday, March 30, 2018

redis commands

start cli
redis-cli

show keys
KEYS

showo keys starting with blog
KEYS blog*

clear all keys (delete all from redis)
flushall

Wednesday, November 29, 2017

Elastic search start stop

Start
sudo service elasticsearch start
Stop
sudo service elasticsearch stop

Thursday, October 5, 2017