我正在使用Unity Facebook SDK进行iOS游戏,但FB.Feed无效。使用Unity 4.2.2和Facebook SDK 4.2.4
以下是发生的事情:
在游戏开始时,FB init被称为
void Awake () {
enabled = false;
FB.Init(SetInit, OnHideUnity);
}
private void SetInit()
{
enabled = true; // "enabled" is a magic global
FB.GetAuthResponse(LoginCallback);
}
private void OnHideUnity(bool isGameShown)
{
if (!isGameShown)
{
Time.timeScale = 0;
}
else
{
Time.timeScale = 1;
}
}
void LoginCallback(FBResult result)
{
Debug.Log("call login: " + FB.UserId);
FbDebug.Log("call login: " + FB.UserId);
Debug.Log("login result: " + result.Text);
FbDebug.Log("login result: " + result.Text);
if (result.Error != null)
{
Debug.LogError(result.Error);
return;
}
}
当我在Facebook上点击共享按钮时,会调用以下函数:
public void FBShare() {
if(!FB.IsLoggedIn)
FB.Login("email,publish_actions", LoginCallback);
FB.Feed(
linkName: "My Game",
linkDescription: "Just played My Game. It's awesome!",
linkCaption: "I just smashed 4" + " friends! Can you beat it?",
picture: "http://www.friendsmash.com/images/logo_large.jpg",
callback: LogCallback
);
}
如果我没有登录,那么我会在facebook上获得登录提示(切换到FB应用程序)
过去3天撕掉我的头发。找不到任何帮助。回调函数的日志是返回空响应。
答案 0 :(得分:2)
Login是一个异步函数。一旦你调用它,它将从你的应用程序多任务并尝试进行身份验证。您在呼叫登录后立即呼叫Feed。 Feed还会尝试从您的应用中进行多任务处理。您为此案例进行自定义登录回调,并从其内部调用Feed。
答案 1 :(得分:2)
我终于明白了。问题是Facebook在线应用程序上的捆绑ID不正确,这些更改需要花费一些时间传播到所有FB服务器,因此不能立即明白问题是什么。