3

我正在尝试将 facebook sdk 集成到我的统一 android 游戏中。我在从开发者网站下载的 SDK 中找不到 FBUtil 和 GameStateManager。我使用 FB.UserId 获得了 userId。也得到了回应

" sending to Unity OnInitComplete({"access_token":"CAAUCMHNGlZCcBAHJBQAs7AoJNevkZAFbkpSRk60TURemvv4Y6IOu9NXjGcFjFRZAx9RoxwKT4ZBZASs0NLiYTmi4rl7RyWYdtxxhlKkSjoIWiqqDSBdSDKk0OppB2ZB4U6IgtqQs9PM8uNCaNF5xgqWn2c9DDkp4dJc9p38XONKpdwRF7qDHtM","user_id":"100003735696788","opened":true})"

就在那之后,当我尝试使用 developer.facebook.com 上给出的代码获取用户的个人资料图片时,

void LoginCallback() {
FB.API (
    "/me/picture",
    Facebook.HttpMethod.GET,
    APICallback
);      

}

我得到的回答是4个问号。

????

问题出在哪里?请帮忙..

4

2 回答 2

2

我在 Unity 中使用 WWW 使用了这个链接,效果很好。这正是我所做的

  1. 获得用户 ID 后,创建一个 WWW 对象,如下所示:

WWW url = new WWW("http://graph.facebook.com/INSERT_USER_ID_HERE/picture?type=large");

  1. 然后在 LateUpdate 中,我放置了一个 IF 条件检查图片是否已加载,并带有一个名为 load 的布尔值,以避免多次重新加载图片

    if (url.isDone && !loaded)
    {
        loaded = true;            
    
        Texture2D textFb2 = new Texture2D(50, 50, TextureFormat.ARGB32, false); //TextureFormat must be DXT5
    
        url.LoadImageIntoTexture(textFb2);
        PLANE_OR_QUAD_OBJECT.renderer.material.mainTexture = textFb2;
    
    }
    

注意:url 在整个类中可见并且已加载

如果您需要进一步的帮助,请告诉我!

于 2013-08-31T09:33:00.680 回答
1

通常 Facebook 图片 API 应该返回纹理类型而不是文本的数据

例如,如果您使用类似@jkgm777 答案的代码,

WWW url = new WWW("http://graph.facebook.com/INSERT_USER_ID_HERE/picture");

您应该获得可用于替换场景中纹理对象的纹理类型。但如果你想获取图片网址,请使用这个

http://graph.facebook.com/INSERT_USER_ID_HERE/picture?redirect=false

你会得到这个 JSON 来响应

data: {
url: "{#IMAGE_URL#}",
is_silhouette: false
}
于 2013-09-04T13:26:30.597 回答