但我能够显示用户名和我朋友的用户名。我的应用令牌正在运行,我正在使用JSON数据从Facebook网址获取数据。
void Start()
{
getFB_ID();
}
void getFB_ID()
{
Facebook.instance.graphRequest( "me/", HTTPVerb.GET, ( error, obj ) =>
{
var ht = obj as Hashtable;
userId = ht["id"].ToString();
Debug.Log( "USER ID: " + userId);
string url = "http://graph.facebook.com/"+userId+"?fields=id,name,picture";
StartCoroutine(getURL(url));
});
}
IEnumerator getURL(string url)
{
WWW www = new WWW(url);
yield return www;
Debug.Log ("Heres the URL you are accessing: " + url);
ProfilePicDisplay(www.text);
public void ProfilePicDisplay(string jsonString)
{
JsonData jsonProfilePic = JsonMapper.ToObject(jsonString);
ConverterScript fbprofilepic;
MyPicture = new ArrayList();
{
fbprofilepic = new ConverterScript();
fbprofilepic.name = jsonProfilePic["name"].ToString();
fbprofilepic.picture = jsonProfilePic["picture"].ToString();
LoadProfilePic(fbprofilepic);
MyPicture.Add(fbprofilepic.name);
}
}
private void LoadProfilePic(ConverterScript profile)
{
string ProfilePic = "userAvatar";
GameObject profile_pic_holder = GameObject.Find(ProfilePic);
profile_pic_holder.SendMessage("LoadImage", profile);
}
能够在我的日志中获取数据,但问题是它没有加载图像,它说:
您正在尝试从www流加载数据,下载时出现以下错误。 无法解析主机:JsonData对象(未找到域名)
答案 0 :(得分:0)
截至上周,10月3日,详情请见https://developers.facebook.com/blog/post/2012/10/03/platform-updates--operation-developer-love/
图片端点不再返回字符串中的图片URL。它返回一个字典,你必须改变你的解析才能到达它。所以返回的数据看起来更像是这样:
{
"id": "1234567",
"name": "Your Name",
"picture": {
"data": {
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/your_picture.jpg",
"is_silhouette": false
}
}
}
答案 1 :(得分:0)
在最新的LeanLoader中,有一个自动修复新提到的Facebook端点abernathy,它允许您直接加载图像(所有解析的json和引擎处理的其他数据) 。您可以轻松加载这样的个人资料图片:
function Start () {
LeanLoader.load("https://graph.facebook.com/DentedPixel/picture?type=large&redirect=false", LLOptions().setOnLoad(onImageLoaded));
}
private function onImageLoaded( tex:Texture2D ){
Debug.Log("Your image texture ready to use! :"+tex);
}
我认为人们会发现许多其他功能LeanLoader(包括缓存图像/文本/声音和内置JSON解析器)。
答案 2 :(得分:0)
试试这个 - fb sdk version-9.1.0
FB.API("/me/picture?type=large", HttpMethod.GET, DisplayProfilePic);// API调用
void DisplayProfilePic(IGraphResult result)
{
Image profilePic;
if (result.Texture != null)
{
profilePic = image1; // diplaying image
profilePic.sprite = Sprite.Create(result.Texture, new Rect(0, 0, result.Texture.width, result.Texture.height), new Vector2());
}
}