UNITY - FB SDK:截图未在个人资料上发布

时间:2015-01-29 05:00:23

标签: c# facebook facebook-graph-api unity3d facebook-unity-sdk

我正在尝试将FB SDK集成到我的UNITY GAME for ios和ANDROID中 FB SHARE AND INVITE工作正常,在FBSCENE"场景。
但是在" GAME"场景我想在游戏结束后拍摄一张SCREENSHOT并将其发布在用户FB WALL上 我读了"拍摄并发布截图"在 https://developers.facebook.com/docs/unity/reference/current/FB.API 的示例下 我的代码就是这个

public void screenShareFB()
{
    callFB ();
}
void callFB () {
    if (!FB.IsLoggedIn) {
        FB.Login("email,publish_actions", LoginCallback);                                                                                                                                                                
    }
    else {
        StartCoroutine(TakeScreenshot());
    }
}

void LoginCallback(FBResult result) {                                                                                          
    FbDebug.Log("LoginCallback");                                                          
    if (FB.IsLoggedIn) { 
        StartCoroutine(TakeScreenshot());
    }                                                                                      
}
/*
void OnLoggedIn() {                                                                                          
    FbDebug.Log("Logged in. ID: " + FB.UserId);                                            
}*/

private IEnumerator TakeScreenshot() {
    yield return new WaitForEndOfFrame();

    var width = Screen.width;
    var height = Screen.height;
    var tex = new Texture2D(width, height, TextureFormat.RGB24, false);
    // Read screen contents into the texture
    tex.ReadPixels(new Rect(0, 0, width, height), 0, 0);
    tex.Apply();
    byte[] screenshot = tex.EncodeToPNG();

    var wwwForm = new WWWForm();
    wwwForm.AddBinaryData("image", screenshot, "InteractiveConsole.png");
    wwwForm.AddField("message", "herp derp.  I did a thing!  Did I do this right?");

    FB.API("me/photos", Facebook.HttpMethod.POST, Callback, wwwForm);
    Debug.Log("done");
}
private Texture2D lastResponseTexture;
private string lastResponse = "";
public string ApiQuery = "";
void Callback(FBResult result)
{
    lastResponseTexture = null;
    if (result.Error != null)
        lastResponse = "Error Response: " + result.Error;
    else if (!ApiQuery.Contains("/picture"))
        lastResponse = "Success Response: " + result.Text;
    else
    {
        lastResponseTexture = result.Texture;
        lastResponse = "Success Response: ";
    }
}

当用户点击SHARE SCREENSHOT按钮时,会调用screenShareFB() 注:
我调用了FB.Init(带回调方法);在脚本的Start()中 我正在使用C#脚本 这是因为我的应用程序不在facebook上发布吗? 我已经在facebook上配置了它 我在PC上测试。

如果代码或我遗失的任何内容有任何问题,请告诉我。

1 个答案:

答案 0 :(得分:0)

问题是权限 facebook的“publish_actions”权限未经审核 截图没有发布。
但有一件事,当试图填写fb的详细信息来审查我的应用程序并允许我访问我的用户的publish_actions 他们要求我们在“BASIC”的“SETTINGS”下添加一个“平台” 现在我正在使用UNITY 这里没有提到它作为一个平台。 我该怎么办。?