web-dev-qa-db-fra.com

Obtenir les photos Facebook de l'utilisateur sous forme de téléchargement Wordpress

Je suis nouveau et un peu gênant sur le fonctionnement de Wordpress, car je prévois de l'utiliser comme CMS pour mon site Web commercial. J'ai découvert comment créer une image extraite de la photo Facebook de l'utilisateur et l'enregistrer en tant que fichier de téléchargement dans Wordpress.

Laissez-moi expliquer d'abord.

J'ai créé un utilisateur test sur Facebook et capable d'obtenir ses informations Facebook après son inscription (en obtenant des informations de base et en utilisant wp_insert_user()). Je n'ai aucun problème à récupérer les informations utilisateur de base car je viens de les enregistrer sur mon site Wordpress avec update_user_meta. J'ai également pu obtenir un lien d'image de photos Facebook de l'utilisateur avec l'API Facebook.

Mais pour le moment, j'ai besoin que ces images soient enregistrées en tant que média Wordpress afin que les utilisateurs puissent les manipuler (mettre à jour ou supprimer). J'ai essayé de faire comme; lors de l'inscription de l'utilisateur, mon site Web est capable de récupérer le fichier de photos des utilisateurs et de l'enregistrer sur mon site. Une fois l'utilisateur connecté, il pourra voir ses photos Facebook sur mon site, supprimer les photos et en télécharger une nouvelle s'il le souhaite.

Disons par exemple qu'il s'agit de la photo de profil utilisateur extraite: -

http://graph.facebook.com/118114855253013/picture?type=large 

et la photo de couverture Facebook de l'utilisateur: -

https://scontent.xx.fbcdn.net/hphotos-xft1/v/t1.0-9/12931266_119567738441058_7589195259803266908_n.jpg?oh=d709e39e7525c69e96a2b1695d4930fa&oe=57C011F2

de l'API Facebook: -

$response = $fb->get('/me?fields=id, name, cover, picture, albums{name,photos{source}}',  $longLivedAccessToken);
$user = $response->getGraphUser();

$coverpic = $user['cover']['source'];
$profilepic = 'http://graph.facebook.com/' . $user['id'] . '/picture?type=large';

Habituellement, je l'enregistre directement dans la méta de l'utilisateur avec d'autres informations de base, par exemple: -

update_user_meta( $user_id, 'coverpic', $coverpic );
update_user_meta( $user_id, 'profilepic', $profilepic );

Mais cela ne fait que lier les images de Facebook. Je suis peut-être obligé de changer cette méthode update_user_meta() et de la changer en je ne sais pas, peut-être une fonction de téléchargement Wordpress telle que wp_handle_upload() ou wp_insert_attachment() ou peut-être d'autres fonctions connexes qui me déroutent beaucoup. Mais je lis la documentation Wordpress depuis des jours et j'ai du mal à les appliquer dans ma situation actuelle. Je me suis demandé comment le sauvegarder sur un support Wordpress et afin de pouvoir le manipuler par les utilisateurs. eux-mêmes dans leur page de profil front-end après leur "Connexion Wordpress via Facebook" sur mon site.

J'ai vraiment besoin d'aide ici les gars. Mon cerveau de programmation est si lent que je pourrais me tuer pour devenir bon en la matière ...

1
Kaydarin

Vous pouvez utiliser media_sideload_image() pour créer un lien vers un fichier et le télécharger dans la médiathèque. Vous devez lui transmettre une sorte de $post_id @ Sumit indique dans les commentaires que vous pouvez passer NULL dans le champ $post_id.

media_sideload_image(
    $file_url,
    $post_id,
    $image_desc,
    $return
);

Si vous avez besoin de l'ID d'image téléchargée, jetez un œil Tom J. Nowells répond en utilisant des points d'ancrage

2
Howdy_McGee