Friday 14 December 2018

Base url in Laravel

Updates from 2018 Laravel release(5.7) documentation with some more url() functions and it's usage.
Question: To get the site's URL in Laravel?
This is kind of a general question, so we can split it.
1. Accessing The Base URL
// Get the base URL.
echo url('');

// Get the app URL from configuration which we set in .env file.
echo config('app.url'); 
2. Accessing The Current URL
// Get the current URL without the query string.
echo url()->current();

// Get the current URL including the query string.
echo url()->full();

// Get the full URL for the previous request.
echo url()->previous();
3. URLs For Named Routes
// http://example.com/home
echo route('home');
4. URLs To Assets(Public)
// Get the URL to the assets, mostly the base url itself.
echo asset('');
5. File URLs
use Illuminate\Support\Facades\Storage;

$url = Storage::url('file.jpg'); // stored in /storage/app/public
echo url($url);
Each of these methods may also be accessed via the URL facade:
use Illuminate\Support\Facades\URL;

echo URL::to(''); // Base URL
echo URL::current(); // Current URL
How to call these Helper functions from blade Template(Views) with usage.
// http://example.com/login
{{ url('/login') }}

// http://example.com/css/app.css
{{ asset('css/app.css') }}

// http://example.com/login
{{ route('login') }}

// usage

<!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">

<!-- Login link -->
<a class="nav-link" href="{{ route('login') }}">Login</a>

<!-- Login Post URL -->
<form method="POST" action="{{ url('/login') }}">

Friday 7 December 2018

How to display facebook page photos in your websites using PHP

1) Create a Facebook APP and get App id and App Secret replace those values with $appid and $appSecret variables
2) Replace your page album id with $album_id variable
 
function web_page_ur($url)
 {
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$contents = curl_exec($ch);
return $contents;
}
if(sizeof($_SESSION['fbPhotoData'])>0)
{
$fbPhotoData=$_SESSION['fbPhotoData'];
}
else
{
if(isset($_SESSION['facebook_access_token'])){
 
 $access_token = $_SESSION['facebook_access_token'];
}else{
 
 $appId = '181855785764820'; 
 $appSecret = '*****************';
 
 // Generate access token
 $graphActLink = "https://graph.facebook.com/oauth/access_token?client_id={$appId}&client_secret={$appSecret}&grant_type=client_credentials";
 
 // Retrieve access token
 



 $accessTokenJson = web_page_ur($graphActLink); //file_get_contents($graphActLink);
 $accessTokenObj = json_decode($accessTokenJson);
 $access_token = $accessTokenObj->access_token;
 
 // Store access token in session
 $_SESSION['facebook_access_token'] = $access_token;
}
$album_id = 225370936573; /*180396626573 190228041312178*/

$album_name ='Timeline Photos'; 
$access_token = $_SESSION['facebook_access_token'];
$graphPhoLink = "https://graph.facebook.com/v2.9/{$album_id}/photos?limit=35&name=family&fields=source,images,name&access_token={$access_token}";
//echo $graphPhoLink ;
$jsonData =web_page_ur($graphPhoLink);
$fbPhotoObj = json_decode($jsonData, true, 512, JSON_BIGINT_AS_STRING);
$fbPhotoData = $fbPhotoObj['data'];
$_SESSION['fbPhotoData']=$fbPhotoData;
}


 $k=$flag=0;
 $flg=0;
 


 $limit_photo = 9;
?>
<?php foreach($fbPhotoData as $fb_fetch_data){

if($k<$limit_photo)&&($fb_fetch_data['name']!='')
{
 $k++;
 $flg++;
 $imageData = end($fb_fetch_data['images']);
 // $imgSource = isset($imageData['source'])?$imageData['source']:'';
 $imgSource=$fb_fetch_data['images']['1']['source'];
 $name = isset($fb_fetch_data['name'])?$fb_fetch_data['name']:'';
 $desc=substr($fb_fetch_data['name'] ,0,160);
 ?>
 <li><div class="brand_offerimg masonrybox" style="overflow:hidden;height:auto;">
 
 <img src="<?php echo $imgSource; ?>" class="img-fluid mx-auto" alt="">
 <div class="mason-overlay">
 <div style="padding-top: 8px;font-size: 13px;"><?php echo substr($fb_fetch_data['name'],0,250); ?></div>
 <p style="text-align: center;margin-bottom: 0;"><a href="<?php echo "https://www.facebook.com/greatindiaplace/photos/a.225370936573.146164.180396626573/".$fb_fetch_data['id']."/?type=3&theater"; ?>" target="_blank" ><i class="fa fa-facebook" style="color: #e1e200;padding: 7px"></i></a></p></div>
 
 </div></li>
 <?php
 }
 }
 ?></ul>

Codeigniter and facebook php sdk autopost to company wall

You will need to get the Appid, App secret and an access token. You can extend the access token so that it doesn't expire.
$graphUrl = 'https://graph.facebook.com/oauth/access_token?client_id='.APPID .'&client_secret='.APPSECRET.'&grant_type=fb_exchange_token&fb_exchange_token='.ACCESS_TOKEN;

$accessToken = @file_get_contents($graphUrl);
parse_str($accessToken); //get the access_token param in the string and would be named $access_token
if(!$access_token) $access_token = $accessToken; //if cannot be extended then just return the access token with 2 hours expiry
In order to post as your company page, you will need their page id.
Here is part of my script that I used to get all this working. Its not codeigniter, but you will be able to see how it works.
$config = array(
        'appId' => APPID,
        'secret' => APPSECRET,
);


        $facebook = new Facebook($config);
        $facebook->setAccessToken(ACCESS_TOKEN);

        // Get User ID
        $user = $facebook->getUser();

if ($user) {

        try {
                $page_id = '************'; // 
                $page_info = $facebook->api("/$page_id?fields=access_token");
                if(!empty($page_info['access_token']) ) {
                        // do your code stuff

                 }

         } catch etc etc
Hope this is helpful to you

How to run multiple Laravel projects at same time?

Multiple Laravel Projects First run your first laravel project blog as follows: Open your command prompt and go to your drive where your...