In questo articolo vedremo come integrare il login con Pinterest usando PHP, per fare ciò bisogna eseguire i seguenti step:
- Creare un account Pinterest, se non se ne ha già uno
- Eseguire l'upgrade gratuito dell'account creato in 'account per le aziende' e Inserire i dati della propria azienda
- Creare una nuova app nella sezione 'le mie app'
Per creare un account Pinterest utilizzare il modulo di registrazione al seguente link
ci verrà chiesto di inserire un indirizzo email valido, di creare una password e di inserire la propria data di nascita, al termine della procedura di registrazione ci verrà inviata una email con un link per attivare l'account, quindi attiviamo l'account usando il link che ci è stato inviato.
#Eseguire l'upgrade ad 'account per le aziende'
Adesso che abbiamo un account Pinterest correttamente attivato, andiamo alla pagina 'Piattaforma per Sviluppatori' al seguente link
effettuiamo l'accesso e clicchiamo sulla sezione 'le mie app' si aprirà una pagina dove ci verrà chiesto di creare un account sviluppatore
clicchiamo sul bottone rosso 'Accedi', e nella schermata successiva clicchiamo su 'Converti in un account per le aziende' dal menù a destra
quindi eseguiamo l'upgrade ad un account aziendale e inseriamo tutti i dati relativi alla nostra azienda.
Dopo aver eseguito l'upgrade dell'account, per poter creare una app nella sezione 'le mie app', dobbiamo accettare i termini per sviluppatori
A questo punto possiamo creare una app da usare per l'integrazione login con Pinterest, clicchiamo sul bottone 'collega app'
e compiliamo tutti i dati nei campi richiesti.
Dopo aver creato l'app dalla sezione 'le mie app', clicchiamo sul bottone 'Gestisci' dell'app creata
nella sezione 'Configura' prendiamo nota dell'ID e della Chiave segreta dell'app e indichiamo un URI di reindirizzamento, in questo esempio è http://localhost:8080 poichè sto lavorando in modalità sviluppo.
Adesso abbiamo tutto quello che ci occorre per creare un'applicazione che consenta agli utenti di potersi loggare con le proprie credenziali Pinterest.
Ecco il codice di esempio
index.php
<?php
$pinterest_app_id = "ID App";
$pinterest_app_secret = "Chiave segreta App";
$redirect_uri = "http://localhost:8080";
$pinterest_api_url_oauth = "https://www.pinterest.com/oauth/?";
$pinterest_api_url_auth_token = "https://api.pinterest.com/v5/oauth/token";
$pinterest_api_url_user_account = "https://api.pinterest.com/v5/user_account";
$url =
$pinterest_api_url_oauth .
"consumer_id=" .
$pinterest_app_id .
"&redirect_uri=" .
$redirect_uri .
"&response_type=code" .
"&refreshable=true" .
"&scope=user_accounts:read,pins:read,boards:read";
if (!isset($_GET["code"])) {
echo "<a href='{$url}'>Login with Pinterest</a>";
} else {
$code = $_GET["code"];
$authorization = base64_encode(
$pinterest_app_id . ":" . $pinterest_app_secret
);
$headers = ["Authorization:" . "Basic " . $authorization];
$params = [
"grant_type" => "authorization_code",
"code" => $code,
"redirect_uri" => $redirect_uri,
];
$data = http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $pinterest_api_url_auth_token,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $data,
CURLOPT_HTTPHEADER => $headers,
]);
$result_json = curl_exec($curl);
$result = json_decode($result_json, true);
curl_close($curl);
if (array_key_exists("access_token", $result)) {
$access_token = $result["access_token"];
$headers = ["Authorization:" . "Bearer " . $access_token];
$curl_user = curl_init();
curl_setopt_array($curl_user, [
CURLOPT_URL => $pinterest_api_url_user_account,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_HTTPHEADER => $headers,
]);
$result_json_user = curl_exec($curl_user);
curl_close($curl_user);
echo "<pre/>";
echo $result_json_user;
} else {
echo null;
}
}
sostituiamo ID App e Chiave segreta App con le credenziali della nostra app, e indichiamo URI di reindirizzamento ($redirect_uri), lo stesso che abbiamo indicato nella configurazione dell'app, per verificare che funzioni tutto, avviamo un server locale col seguente comando nella stessa cartella in cui abbiamo salvato il file index.php
$ php -S localhost:8080
apriamo nel browser http://localhost:8080, se tutto va a buon fine (dopo che abbiamo effettuato il login con le credenziali Pinterest), otteniamo le informazioni relative all'utente che ha affettuato l'accesso con le proprie credenziali Pinterest.
Per avere una panoramica più ampia sull'API Pinterest consultare la documentazione