2015-01-16 82 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"); 
    } 
} 

希望它能帮助!