我正在运行angularjs和laravel并计划将facebook上的用户个人资料上传到我的服务器并将其加载到画布上。
因为在将其更改为 dataUrl 时加载其他域时,画布会出现 CORS 问题。
那么在fb域上获取图像的url并将其上传到我的服务器后获取图像数据的最佳方法是什么
答案 0 :(得分:1)
首先,您必须从API获取个人资料图片网址。
为此,您必须向http://graph.facebook.com/v2.5/me?fields=picture
申请,提供您的访问令牌。
它将返回如下内容:
{
"picture": {
"data": {
"is_silhouette": false,
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xpt1/v/t1.0-1/p50x50/picture.jpg"
}
},
"id": "10000userid"
}
所以你必须只获得有趣的部分:
// requesting
$get = file_get_contents('http://graph.facebook.com/v2.5/me?fields=picture&access_token=YOUR_ACCESS_TOKEN_HERE');
// parsing
$get = json_decode($get);
// getting the part you want
$picture_url = $get->picture->data->url;
从Facebook API获取图片网址后,您只需:
// download it
$download = file_get_contents($picture_url);
// get extension (I'm not sure if Facebook really converts everything to JPEG, I'm not a huge Facebook user)
$extension = strtolower(end(explode(".", $download)));
// save it on your server
file_put_contents('path/to/save.'.$extension, $download);
答案 1 :(得分:0)
$url = 'https://yourimageurl.com/test.png';
$img = 'foo.png';
file_put_contents($img, file_get_contents($url));