2016-05-12 4 views
0

私たちはFOSFacebookBundleを使用するため、私たちのウェブサイト(Symfony)にfacebookを統合しようとしています。facebookのプロフィール画像をblobカラムに挿入するmysql

私はそれを行い、私のfacebook id、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 

そして私は、私はBLOB列に全体像のAPIのグラフ応答を追加しようとしているからだと思います:

{ 
    "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']); 
     } 
    } 
+0

それはどの言語ですか?あなたの質問を編集して、適切な言語タブを追加してください。これにより、質問の可視性が向上し、回答を得るチャンスが増えます。ありがとうございました! –

答えて

0

なぜブロブですか? URLにはvarchar(255)で十分です。あなたは次のように画像配列のURLにアクセスできるはずです:

$fbdata['picture']['data']['url'] 
+0

ありがとうございます! ($ fbdata ['picture'])){ $ stream = fopen(($ fbdata ['picture'] ['data'] ['url '])、' rb '); $ this-> setPhoto(stream_get_contents($ stream)); } –

関連する問題