Come integrare il login con Pinterest su sito web con PHP

Pinterest è un servizio basato sulla condivisione di foto usato da milioni di persone, per questo molti siti web danno la possibilità ai propri utenti di effettuare il login con le loro credenziali Pinterest.

Pubblicato da ,
Ultima modifica

In questo articolo vedremo come integrare il login con Pinterest usando PHP, per fare ciò bisogna eseguire i seguenti step:

  1. Creare un account Pinterest, se non se ne ha già uno
  2. Eseguire l'upgrade gratuito dell'account creato in 'account per le aziende' e Inserire i dati della propria azienda
  3. Creare una nuova app nella sezione 'le mie app'

 

#Creare un account Pinterest

Per creare un account Pinterest utilizzare il modulo di registrazione al seguente link

pinterest.it/login

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

developers.pinterest.com

effettuiamo l'accesso e clicchiamo sulla sezione 'le mie app' si aprirà una pagina dove ci verrà chiesto di creare un account sviluppatore

 

crea account sviluppatore pinterest

 

 

clicchiamo sul bottone rosso 'Accedi', e nella schermata successiva clicchiamo su 'Converti in un account per le aziende' dal menù a destra

 

converti in un account aziendale pinterest

 

 

quindi eseguiamo l'upgrade ad un account aziendale e inseriamo tutti i dati relativi alla nostra azienda.

 

#Creare una nuova app

Dopo aver eseguito l'upgrade dell'account, per poter creare una app nella sezione 'le mie app', dobbiamo accettare i termini per sviluppatori

 

accetta termini per sviluppatori pinterest

 

 

A questo punto possiamo creare una app da usare per l'integrazione login con Pinterest, clicchiamo sul bottone 'collega app'

 

collega l'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

 

esegui l'upgrade

 

 

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