我正在创建一个应用程序,用户登录后会加载很多Facebook好友。然后应用程序会显示这些用户的列表,我希望在每个用户旁边显示一个小方形的个人资料图片。
我发现这个网址是这样做的:
http://graph.facebook.com/4/picture?type=square
通过检查应用程序,所有数据都会在1秒内加载,但由于从graph.facebook.com到原始网址的网址转换,显示所有图片大约需要10到20秒。
所以我去检查手册,发现有关接收网址为JSON的更多信息,我可以在PHP中使用它来存储该方形图片的直接网址,因此每次重新加载应用时都不会翻译。
所以下一个网址给了我JSON:
http://graph.facebook.com/4/picture?type=square&redirect=false
这个网址会在我的浏览器中将其作为输出:
{
"data": {
"is_silhouette": false,
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xfp1/v/t1.0-1/p50x50/10390028_10102210419817761_5871103530921178170_n.jpg?oh=8113088106568f3a88016bcf414ba67f&oe=56C5FA23&__gda__=1455882568_659558fb576ed2425347df8a208cbca4"
}
}
下一步是从该JSON中获取url,我尝试使用此代码做什么
$url = 'http://graph.facebook.com/4/picture?type=square&redirect=false';
echo json_decode(file_get_contents($url))->url;
现在很奇怪的事情是经过大量的试验和考验。错误,每次我使用file_get_contents时,所有ECHO文本都消失了,即使我做了类似echo和#34; test"那个回声也消失了。即使我将该输出存储到变量,它仍然是空的。谁能告诉我我做错了什么?谢谢。
目标是..一旦用户登录..在临时位置存储用户名,用户ID和该方形用户图片的URL,直到会话被破坏,只是为了更好地获得负载性能
答案 0 :(得分:0)
分析网址的答案..
{
"data": {
"is_silhouette": false,
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xfp1/v/t1.0-1/p50x50/10390028_10102210419817761_5871103530921178170_n.jpg?oh=8113088106568f3a88016bcf414ba67f&oe=56C5FA23&__gda__=1455882568_659558fb576ed2425347df8a208cbca4"
}
}
你这样做是错误的。它不是json_decode(file_get_contents($url))->url;
而是json_decode(file_get_contents($url))->data->url;
所以,而不是:
$url = 'http://graph.facebook.com/4/picture?type=square&redirect=false';
echo json_decode(file_get_contents($url))->url;
成功:
$url = 'http://graph.facebook.com/4/picture?type=square&redirect=false';
echo json_decode(file_get_contents($url))->data->url;