我想在我的应用程序画布页面中显示用户个人资料图片,有没有办法使用图形api来做到这一点?
我知道我可以使用FBML做到这一点,但我也希望将个人资料图片传递给我正在制作的Flash游戏,所以我必须从api获取个人资料图片并将其作为变量发送,这里是我到目前为止的代码,
$facebook = new Facebook(array(
'appId' => FACEBOOK_APP_ID,
'secret' => FACEBOOK_SECRET_KEY,
'cookie' => true,
'domain' => 'myurl/facebook-test'
));
$session = $facebook->getSession();
$uid = $facebook->getUser();
$me = $facebook->api('/me');
$updated = date("l, F j, Y", strtotime($me['updated_time']));
echo "Hello " . $me['name'] . $me['picture'] . "<br />";
echo "<div style=\"background:url(images/bg.jpg); width:760px; height:630px;\">" . "You last updated your profile on " . $updated . "</div>" . "<br /> your uid is" . $uid;
$me['picture']
似乎没有用,但我对图表api仍然很新,我可能会犯一些非常业余的错误!
答案 0 :(得分:125)
了解用户ID,其个人资料图片的网址为: -
http://graph.facebook.com/[UID]/picture
代替[UID]放置$ uid变量,该URL可以传递给flash
答案 1 :(得分:81)
要获得不同的大小,可以使用类型参数:
您可以使用type参数指定所需的图片大小,该参数应为方形(50x50),小(50像素宽,可变高度)和大(宽约200像素,可变高度)之一:{{ 3}}
答案 2 :(得分:22)
您还可以通过提供如下所示的参数来调整个人资料照片的大小。
https://graph.facebook.com/[UID]/picture?width=140&height=140
也可以。
答案 3 :(得分:7)
//create the url
$profile_pic = "http://graph.facebook.com/".$uid."/picture";
//echo the image out
echo "<img src=\"" . $profile_pic . "\" />";
对我来说很好用
答案 4 :(得分:4)
编辑:所以facebook再次改变了!不再按用户名搜索 - 修改了下面的答案......
https://graph.facebook.com/{{UID}}/picture?redirect=false&height=200&width=200
e.g。 https://graph.facebook.com/4/picture?redirect=false&height=200&width=200
答案 5 :(得分:3)
这是适用于我的代码!
假设你有一个有效的会话,
//Get the current users id
$uid = $facebook->getUser();
//create the url
$profile_pic = "http://graph.facebook.com/".$uid."/picture";
//echo the image out
echo "<img src=\"" . $profile_pic . "\" />";
Thanx去了Raine,你这个男人!
答案 6 :(得分:1)
使用CURL时,我在查找个人资料照片时遇到问题。我想了一段时间我的Facebook API的实现有些不对劲,但我需要在我的CURL中添加一些名为:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
答案 7 :(得分:1)
一个非常重要的事情是,与其他Graph API请求一样,您不会在响应中获取JSON数据,而是调用将HTTP REDIRECT返回到配置文件pic的URL。因此,如果要获取URL,则需要读取响应HTTP标头,或者可以使用FQL。
答案 8 :(得分:-1)
返回的数据是图像类型的二进制数据。如果使用JavaScript检索用户照片,请在XMLHttpRequest中以blob类型获取照片数据,然后从响应中检索blob URL。供您参考:
var request = new XMLHttpRequest;
var photoUri=config.endpoints.graphApiUri + "/v1.0/me/photo/$value";
request.open("GET",photoUri);
request.setRequestHeader("Authorization","Bearer "+token);
request.responseType = "blob";
request.onload = function (){
if(request.readyState == 4 && request.status == 200){
var image = document.createElement("img");
var url = window.URL || window.webkitURL;
var blobUrl = url.createObjectURL(request.response);
image.src = blobUrl;
document.getElementById("UserShow").appendChild(image);
}
};
request.send(null);