簡體   English   中英

Unity Facebook API - FB.API() 語法

[英]Unity Facebook API - FB.API() Syntax

(使用 Unity 5.2.2,Unity Facebook SDK 7.2.2)

登錄后,我試圖獲取我的 Facebook 個人資料圖片,將其制作為Sprite並將其設置為Image 單擊Button時調用方法 FBLogin()。

public void FBLogin()
{
    perms = new List<string>() { "public_profile", "email", "user_friends" };
    FB.LogInWithReadPermissions(perms, AuthCallback);
}

private void AuthCallback(ILoginResult result)
{
    if (FB.IsLoggedIn)
    {                
        //Get Facebook Details
        getUserInfoFromFacebook();
    }
    else
    {
        Debug.Log("User cancelled login");
    }
}

private void getUserInfoFromFacebook()
{
    FB.API("/v2.5/me?fields=id,name,picture", Facebook.Unity.HttpMethod.GET, DealWithProfilePicture);
}

private void DealWithProfilePicture(IGraphResult result)
{
    if (result.Error != null)
    {
        Debug.Log("Problem with getting profile picture");
        FB.API("/v2.5/me?fields=id,name,picture",Facebook.Unity.HttpMethod.GET, DealWithProfilePicture);
        Debug.Log(result.Error);
        return;

    }

    profile_picture.sprite = Sprite.Create(result.Texture, new Rect(0,0,128,128), new Vector2(0,0));

}

我根本無法掌握 API 語法的竅門 - 它會產生錯誤400 Bad Request 有人可以幫我解決語法問題嗎?

謝謝

您可以在該文檔中看到圖片不是用戶的字段,而是一個額外的邊緣,可以通過請求/me/picture檢索:

FB.API("/me/picture",HttpMethod.GET,delegate(IGraphResult result) {
    if (string.IsNullOrEmpty(result.Error))
    {
        Debug.Log("received texture with resolution "+result.Texture.width + "x" + result.Texture.height);
        profile_picture.sprite = Sprite.Create(result.Texture, new Rect(0,0,128,128), new Vector2(0,0));
    }
    else
    {
        Debug.LogWarning("received error="+result.Error);
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM