2

你有什么主意吗?我正在使用 Unity IDE 和 C# 开发应用程序。此外,我正在使用社交网络 prime31 作为我的 Facebook 插件。我能够获取所有图表并将其显示在我的屏幕应用程序中,但从上周开始它没有显示个人资料图片和我朋友的图片,它只显示一个简单的问号。你对此有什么想法吗?

但我能够显示用户名和我朋友的用户名。我的应用令牌正在工作,我正在使用 JSON 数据从 Facebook URL 获取数据。

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 对象(未找到域名)

4

3 回答 3

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
    }
  }
}
于 2012-10-10T02:12:28.493 回答
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 解析器)。

于 2014-06-20T11:39:47.930 回答
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());
    }
}
于 2021-05-05T13:30:05.333 回答