获取用户的Facebook照片作为WordPress上载

时间:2016-04-15 作者:Kaydarin

我是新来的,对于Wordpress的工作方式有点麻烦,因为我计划将其用作我商业网站的CMS。我一直在想如何制作一张从用户Facebook照片中检索到的图像,并将其保存为Wordpress中的上传文件。

让我先解释一下。

我创建了一个Facebook测试用户,可以在注册后获取他们的Facebook信息(通过获取一些基本信息和使用wp_insert_user()). 我在检索基本用户信息时没有问题,因为我只是将其保存在Wordpress站点中update_user_meta. 我还可以通过Facebook API获取用户的Facebook照片图像链接。

但现在我需要将这些图像另存为Wordpress媒体,以便用户可以对其进行操作(更新或删除)。我试着做出喜欢的样子;在用户注册期间,我的网站能够获取用户照片文件并将其保存在我的网站中。当用户登录后,他们将能够在我的网站上查看他们的Facebook照片,如果他们愿意,他们可以删除照片并上传新照片。

例如,这是检索到的用户配置文件照片:-

http://graph.facebook.com/118114855253013/picture?type=large 
和用户的Facebook封面照片:-

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

$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\';
通常,我会将其与其他基本信息一起直接保存到用户meta,例如:-

update_user_meta( $user_id, \'coverpic\', $coverpic );
update_user_meta( $user_id, \'profilepic\', $profilepic );
但这只是链接了Facebook上的图片。我可能需要改变一下update_user_meta() 方法并将其更改为我不知道,可能是Wordpress上载功能,如wp_handle_upload()wp_insert_attachment() 或者其他对我来说很困惑的相关函数。但我已经阅读Wordpress文档好几天了,很难将它们应用到我目前的情况中。我一直在想how to save it in Wordpress mediamake it able to be manipulated by the users themselves in their front end profile page 在我的网站上“通过Facebook登录Wordpress”之后。

伙计们,我真的需要帮助。我的编程大脑太慢了,我可能会为了擅长它而自杀。。。

1 个回复
SO网友:Howdy_McGee

您可以使用media_sideload_image() 它将获取指向文件的链接并将其上载到媒体库你确实需要通过某种方式$post_id@Sumit 在您可以传递的评论中指出NULL 进入$post_id 领域

media_sideload_image(
    $file_url,
    $post_id,
    $image_desc,
    $return
);
如果您需要上传的图像ID,请查看Tom J. Nowells answer using hooks

相关推荐

Images getting smashed

我正在开发一个网站,我遇到了一个关于图像和图库的问题。每当你进入页面时,图像都会被破坏,一旦你刷新几次,它就会被修复,但第一次进入页面时,它看起来是这样的:当它看起来像这样时:这些图像经过的过程是:上传画廊(Gutenberg Block)使用EWW插件进行优化之后,关于图像优化,我激活了PageSpped Ninja、AutoOptimize和Smush插件。我已尝试禁用所有这些功能,但问题仍然存在,我希望您能帮助我解决这个问题。谢谢:D