Laravel 8 Facebook Like and Share button integration example
Facebook is one of the best source to reach your audiance. Facebook provides Simple Javascript SDK for like and share button by which user can directly share your website article.
In this article, we will guide you how you can integrate Facebook like and share button into your Laravel application. We will go through step by step from the scratch. The tutorial contains following steps:
- Step 1: Create fresh Laravel application
- Step 2: Configure database into .env file
- Step 3: Import dummy data into database
- Step 4: Create route
- Step 5: Create controller class
- Step 6: Create view file and integrate Facebook
Let's start the tutorial
Step 1: Create fresh Laravel application
In the first step, we will create Laravel application. For that, open the Terminal or CMD and hit the following command.
composer create-project laravel/laravel facebook --prefer-dist
And change the Terminal working directory to project root.
cd facebook
Step 2: Configure database into .env file
After the project is created, open the Laravel project into your favourite IDE. Set the MySQL database credentials into .env
file located at root of the directory.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=facebook
DB_USERNAME=root
DB_PASSWORD=secret
Step 3: Import dummy data into database
We will need some data which we can display over view and share them into Facebook. We have created some dummy articles data to test the application. Copy the following SQL query and import them into your database.
CREATE TABLE `articles` (
`id` bigint UNSIGNED NOT NULL,
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`link` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`body` text COLLATE utf8mb4_unicode_ci,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `articles` (`id`, `title`, `link`, `body`, `created_at`, `updated_at`) VALUES
(1, 'This is sample title.', 'this-is-sample-title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod ntempor incididunt ut labore et dolore magna aliqua.', '2021-09-21 07:08:48', '2021-09-21 07:08:48'),
(2, 'This is sample another title.', 'this-is-sample-another-title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod ntempor incididunt ut labore et dolore magna aliqua.', '2021-09-27 07:09:06', '2021-09-27 07:09:12'),
(3, 'This is extra sample title.', 'this-is-extra-sample-title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod ntempor incididunt ut labore et dolore magna aliqua.', '2021-10-15 07:09:22', '2021-10-14 07:09:26'),
(4, 'Watch out this text.', 'watch-out-this-text', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod ntempor incididunt ut labore et dolore magna aliqua.', '2021-10-22 07:09:49', '2021-10-22 07:09:40'),
(5, 'Find out the current title', 'find-out-the-current-title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod ntempor incididunt ut labore et dolore magna aliqua.', '2021-10-23 07:10:44', '2021-10-23 07:10:48');
Step 4: Create route
Now we have to create a route which will send request to controller class. Open the routes/web.php
file and add new route into it.
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ArticleController;
Route::get('articles', [ArticleController::class, 'index']);
Step 5: Create controller class
As we have created route, we also need to create ArticleController. To create new controller in Laravel, run the below command into Terminal.
php artisan make:controller ArticleController
Open the ArticleController at app/Http/Controllers
directory and add index() method into it.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ArticleController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$articles = \DB::table('articles')
->get();
return view('index', compact('articles'));
}
}
Step 6: Create view file and integrate Facebook
Now we are heading to the core part of the article. We will create a blade view file and add Facebook like and share button on each article. Laravel views are stored at resources/views
directory. Create index.blade.php
file and add below HTML code into it.
To get Facebook code, signin to Facebook Developer account and configure the button as you want.
Click Get code and copy code. You can simply copy iframe code and put it anywhere into article. Put this code where you want to show button.
In the iframe code, be sure to change href attribute dynamically.
resources/views/index.blade.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ALL Articles</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container m-5">
<div class="w-75">
<h2>ALL Articles</h2>
@foreach($articles as $article)
<div class="card my-3">
<div class="card-body">
<h5 class="card-title">{{ $article->title }}</h5>
<p class="card-text">{{ $article->body }}</p>
<iframe src="https://www.facebook.com/plugins/like.php?href=http://yoursite.com/article/{{ $article->link }}&width=450&layout=standard&action=like&size=large&share=true&height=35&appId=1234811234" width="450" height="35" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowfullscreen="true" allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share"></iframe>
</div>
</div>
@endforeach
</div>
</div>
</body>
</html>
We have integrated Facebook buttons into all article link. Now start the Laravel server using following command:
php artisan serve
And into your browser, go to http://localhost:8000/articles
.
Conclusion
We have completed the tutorial. I hope the tutorial will help you on your development.
Copyright 2023 HackTheStuff