我想通过使用facebook sdk获取facebook个人资料照片
当我使用此代码时它工作正常但突然第二天网址没有下载。 网址下载完成后没有打印,显示没有错误。
private IEnumerator getProfilePicture()
{
Debug.Log("Here to get profile picture");
WWW url = new WWW("https" + "://graph.facebook.com/" + FB.UserId + "/picture?type=square");
yield return url;
Debug.Log("url download completed");
Texture2D textFb2 = new Texture2D(url.texture.width, url.texture.height, TextureFormat.ARGB32, false);
Sprite sprite = Sprite.Create(url.texture, new Rect(0, 0, url.texture.width, url.texture.height), new Vector2(0.5f, 0.5f), 32);
spriteToDisplay.GetComponent<SpriteRenderer>().sprite = sprite;
}
答案 0 :(得分:1)
您发送给Facebook的请求导致302重定向到存储在Facebook的CDN中的图像。它不适合你的原因是Unity的WWW类从未正确支持302重定向。
它可能工作了一天左右,因为资源没有传播到CDN网络,但一旦它有了,你就再也无法下载了。
使用curl可以看到302:
$ curl https://graph.facebook.com/zuck/picture?type=square -I
HTTP/1.1 302 Found
Location: https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xfa1/v/t1.0-1/c14.4.153.153/s50x50/1939620_10101266232851011_437577509_n.jpg?oh=6b6cd8460210e1de160cf8a6056df416&oe=550D5F6C&__gda__=1429858477_b29a956770b6173d71cb28eb35fa99e6
Facebook-API-Version: v1.0
Content-Type: image/jpeg
Pragma: no-cache
Access-Control-Allow-Origin: *
X-FB-Rev: 1534884
Cache-Control: private, no-cache, no-store, must-revalidate
Expires: Sat, 01 Jan 2000 00:00:00 GMT
X-FB-Debug: 3+McQVKq40Qa/6hLThwOwQTXP5dpENQqA5FvbX3elTkVxKsEw6ISvJG0eh0V5wVTUjC4fkmuZ1coTCDm2rLTZg==
Date: Wed, 17 Dec 2014 13:33:13 GMT
Connection: keep-alive
Content-Length: 0
一个建议是使用可以处理302的Uniweb库。
或者自己处理302,提取位置响应标头并发送另一个WWW请求。 (但并非所有平台都提供响应标头)。
答案 1 :(得分:0)
最后经过几天的努力,我找到了答案,而我得到的东西有点奇怪......
当我使用相同的代码而不更改任何东西,没有检查任何东西并运行到Android设备它工作正常,
它只有一个预先要求我的手机应该连接到数据包数据和不是wi-fi ......
有一点需要注意的是,对Wi-Fi网络没有任何限制,我可以通过Wi-Fi网络使用Facebook ...加上得分,名称和其他东西正在使用wi-fi .....只有当我想要描绘要下载的图片时,我必须通过分组数据连接我的手机