2015-01-16 117 views
1

這是我們遇到的一個非常奇怪的問題。 在Unity中使用Facebook SDK並在登錄後調用FB.Feed時,會立即彈出Facebook對話框,然後關閉迴游戲屏幕。 這隻發生在我們遊戲的iOS版本上,只發生在第一次,我們嘗試在安裝後發佈到Facebook。隨後的每一次都完美無缺。iOS上的Facebook SDK for iOS,FB.Feed錯誤

我一直沒能找到任何信息,並非常感謝任何幫助。

public IEnumerator ShareToFacebook() 
{ 
    if(!FB.IsLoggedIn) 
    { 
     FB.Login("email", LoginCallback); 
     yield return FB.IsLoggedIn; 
    } 

    FB.Feed(link: linkParameterSet, linkName: nameParameterSet, linkCaption: captionParameterSet, linkDescription: GetDisplayTextFB(), picture: pictureParameterSet); 
} 

這是我使用的C#代碼,FB.Feed的所有參數都是在別處設置的字符串。

回答

0

我通常做這種方式:

public delegate void OnShare(bool success); 
static OnShare onShareCallback; 
public static void Share(string link, string linkName, string linkCaption, string linkDescription, string picture, string actionName, string actionLink, OnShare callback) 
{ 
    onShareCallback = callback; 
    FB.Feed(
     toId: null, 
     link: link, 
     linkName: linkName, 
     linkCaption: linkCaption, 
     linkDescription: linkDescription, 
     picture: picture, 
     mediaSource: null, 
     actionName: actionName, 
     actionLink: actionLink, 
     reference: null, 
     properties: null, 
     callback: ShareCallback 
    ); 
} 

public static void ShareCallback(FBResult result) 
{ 
    if (!String.IsNullOrEmpty(result.Error)) 
    { 
     if (onShareCallback != null) 
     { 
      onShareCallback(false); 
      onShareCallback = null; 
     } 
    } 
    else 
    { 
     if (onShareCallback != null) 
     { 
      onShareCallback(true); 
      onShareCallback = null; 
     } 
    } 
} 

它是靜態的,你可以在任何地方使用它,甚至沒有安裝一個遊戲對象的腳本。

我這樣調用它:

MyFacebook.Share(link, linkName, linkCaption, linkDescription, picture, actionName, actionLink, ProcessFacebookShare); 


void ProcessFacebookShare(bool success) 
{ 
    if(success) 
    { 
     Debug.Log("Successfully shared!"); 
    } 
    else 
    { 
     Debug.Log("There was a problem with facebook sharing"); 
    } 
} 

希望它能幫助!