Вставьте картинку профиля в Facebook в колонку BLOB-объектов.

Я пытаюсь интегрировать Facebook Connect в наш веб-сайт (Symfony), для этого мы используем FOSFacebookBundle.

Я смог сделать это и получить свой идентификатор Facebook, first_name и last_name и вставить их в нового пользователя в нашем столбце fos_user.

Относительно изображения профиля пользователя я продолжаю получать исключение:

An exception occurred while executing 'INSERT INTO fos_user (username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expired, expires_at, confirmation_token, password_requested_at, roles, credentials_expired, credentials_expire_at, nom, prenom, solde, path, sexe, date_Naissance, facebookId, photo) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params ["1223800560964254", "1223800560964254", "******@gmail.com", "*********@gmail.com", 1, "", "", null, 0, 0, null, null, null, "a:1:{i:0;s:12:\"ROLE_PORTEUR\";}", 0, null, "Mohamed", "Elloumi", null, null, null, null, "1223800560964254", {"data":{"is_silhouette":false,"url":"https:\/\/fbcdn-profile-a.akamaihd.net\/hprofile-ak-ash2\/v\/t1.0-1\/c85.25.315.315\/s50x50\/580232_622196307791352_1230572455_n.jpg?oh=17c02ae42bb18d3ddbe3cfdf04239049&oe=57AC3250&__gda__=1474408706_227fd87692ead8189d332a4898571e62"}}]:

Notice: Array to string conversion

И я думаю, что это потому, что я пытаюсь добавить полный ответ api Graph в столбец blob:

{
  "picture": {
    "data": {
      "is_silhouette": false,
      "url": "https://fbcdn-profile-a.akamaihd.net/****"
    }
  },
  "id": "792374454106869"
}

Я думаю, что мне нужно только вставить эту строку в мой столбец BLOB-объектов:

"url": "https://fbcdn-profile-a.akamaihd.net/****"

Я использую эту функцию php для вставки в таблицу fos_user:

public function setFBData($fbdata) // C'est dans cette méthode que vous ajouterez vos informations
    {
        if (isset($fbdata['id'])) {
            $this->setFacebookId($fbdata['id']);

            $this->addRole('ROLE_PORTEUR');
        }
        if (isset($fbdata['first_name'])) {
            $this->setNom($fbdata['first_name']);
        }
        if (isset($fbdata['last_name'])) {
            $this->setPrenom($fbdata['last_name']);
        }
        if (isset($fbdata['email'])) {
            $this->setEmail($fbdata['email']);
        }
        if (isset($fbdata['picture'])) {
            $this->setPhoto($fbdata['picture']);
        }
    }

1 ответ

Решение

Почему капля? Varchar(255) должно хватить для URL. Вы должны быть в состоянии получить доступ к URL в массиве рисунков следующим образом:

$fbdata['picture']['data']['url']
Другие вопросы по тегам