pinterest Login API allows the user to sign into the website using their pinterest account without sign up on that website. Here we can give an option to the user to register/ login to our system with their pinterest.
If the user click on "Login with pinterest" button then it will ask pinterest user name and password. If the user is using the system first time then it will fill up the registration form and display first name, last name, email fields. There will be no password field as the user is register / connect through pinterest. Once the user click on submit, our system will save the data in the server with the reference number or User id sent by pinterest. Next time when the user come and click on "Login with pinterest" our system will check the reference number/ user id in our database, if it matches then it will sent the user directly to My Account page.
Please note in this process we will not save password in the database. You can follow the same steps for login with other social media login/ registration system.
You can download the attached file and get the basic html form and other files used in this project.
You need to generate Pinterest App Client Id and Client Secret.
Save the App Client ID and Client Secret and Redirect URL.
Now Add the following code to "Sign in with pinterest" button.
Login with pinterest
If the user enters the correct info then pinterest page will redirect back to or login page with required information's.
if(isset($_GET['code'])){
try {
$pinterest_ob = new PinterestApi();
// Get the access token
$access_token = $pinterest_ob->GetAccessToken(PINTEREST_APPLICATION_ID,PINTEREST_REDIRECT_URI,PINTEREST_APPLICATION_SECRET, $_GET['code']);
// Get user information
$user_info = $pinterest_ob->GetUserProfileInfo($access_token);
// Echo user information for display
$passcode = $user_info['id'];
$fname = $user_info['first_name'];
$lname = $user_info['last_name'];
$profilepic = $user_info['image']['60x60']['url'];
$loginwith = "Pinterest";
/*Check if the user connected before */
$sql = db_query("select * from register_pinterest where passcode='".$passcode."'");
$numrow = mysqli_num_rows($sql);
if($numrow > 0){
$_SESSION['passcode'] = $passcode;
header('Location:myaccount.php');
exit();
}
$btnstatus = "";
}
catch(Exception $e) {
header('Location:index.php?error');
echo $e->getMessage();
exit;
}
}
If the user registered before then our system will redirect the user to my account page otherwise it will ask the user to register for the first time.
/*Check if the user connected before */
$sql = db_query("select * from register_pinterest where passcode='".$passcode."'");
$numrow = mysqli_num_rows($sql);
if($numrow > 0){
$_SESSION['email'] = $email;
$_SESSION['passcode'] = $passcode;
header('Location:myaccount.php');
exit();
}
The MySql table used in this project
CREATE TABLE IF NOT EXISTS `register_pinterest` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`firstname` varchar(50) DEFAULT NULL,
`lastname` varchar(50) DEFAULT NULL,
`email` varchar(60) DEFAULT NULL,
`gender` varchar(10) DEFAULT NULL,
`passcode` varchar(100) DEFAULT NULL,
`profilepic` varchar(250) DEFAULT NULL,
`loginwith` varchar(10) DEFAULT NULL,
`status` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;