我正在开发一个CMS,它可以从用户的Facebook URL(即http://facebook.com/users_unique_url)中获取用户的个人资料图像。我怎样才能做到呢?是否有一个facebook API调用,获取用户的个人资料图像URL,而不需要用户允许应用程序?
当前回答
博客文章“抓取Facebook图形对象的图片”可能会提供另一种解决方案。使用教程中的代码以及Facebook的Graph API及其PHP SDK库。
... 并且尽量不要使用file_get_contents(除非您已经准备好面对后果——参见file_get_contents vs curl)。
其他回答
我在想,也许ID会是一个有用的工具。每当用户创建一个新帐户时,它应该获得一个更高的ID。我谷歌了一下,发现有一种方法可以通过ID来估计帐户创建日期,Massoud Seifi从metadatascience.com收集了一些关于它的好数据。
阅读这篇文章:
http://metadatascience.com/2013/03/11/inferring-facebook-account-creation-date-from-facebook-user-id/
下面是一些可以下载的id:
http://metadatascience.com/2013/03/14/lookup-table-for-inferring-facebook-account-creation-date-from-facebook-user-id/
简单的一行代码,保存完整尺寸的档案图像在您的服务器上。
<?php
copy("https://graph.facebook.com/FACEBOOKID/picture?width=9999&height=9999", "picture.jpg");
?>
只有在php.ini中启用了openssl,这才有效。
通过这个URL简单地获取数据:
http://graph.facebook.com/userid_here/picture
将userid_here替换为您想获取照片的用户的id。你也可以使用HTTPS。
可以使用PHP的file_get_contents函数读取URL并处理检索到的数据。
资源:
http://developers.facebook.com/docs/api
注意:在PHP .ini中,您需要确保OpenSSL扩展已启用,以便使用PHP的file_get_contents函数读取该URL。
URI = https://graph.facebook.com/{}/picture?width=500'.format(uid)
您可以通过在线facebook id查找工具获得个人资料URI
你也可以通过类型参数可能的值小,正常,大,平方。
参考官方文件
2015年4月开始的工作PHP (HTTP GET)解决方案(不含PHP 5 SDK):
function get_facebook_user_avatar($fbId){
$json = file_get_contents('https://graph.facebook.com/v2.5/'.$fbId.'/picture?type=large&redirect=false');
$picture = json_decode($json, true);
return $picture['data']['url'];
}
你可以在参数中更改“类型”:
广场:
最大宽度和高度为50像素。
小
最大宽度为50像素,最大高度为150像素。
正常的
最大宽度为100像素,最大高度为300像素。
大
最大宽度为200像素,最大高度为600像素。
推荐文章
- 如何测试Facebook本地连接
- 原则-如何打印出真正的sql,而不仅仅是准备好的语句?
- 如何从关联PHP数组中获得第一项?
- PHP/MySQL插入一行然后获取id
- 我如何排序一个多维数组在PHP
- 如何在PHP中截断字符串最接近于一定数量的字符?
- PHP错误:“zip扩展名和unzip命令都没有,跳过。”
- 如何在iOS中使用Swift编程segue
- Nginx提供下载。php文件,而不是执行它们
- Json_encode()转义正斜杠
- 如何在PHP中捕获cURL错误
- 如何要求一个分叉与作曲家?
- 如何在php中创建可选参数?
- 在文本文件中创建或写入/追加
- 为什么PHP的json_encode函数转换UTF-8字符串为十六进制实体?