在 Facebook Unity SDK 中更改 CurrentAccessToken

Changing CurrentAccessToken in Facebook Unity SDK

我正在尝试 post 在 iOS 上使用 Unity Facebook SDK 运行 作为页面的 Facebook 页面。据我了解,要做到这一点,我需要带有 manage_pagespublish_pages 的页面访问令牌。我知道我可以从 /me/accounts?fields=access_token 获取它,但如何告诉 AccessToken.CurrentAccessToken 使用我的页面访问令牌?

现在我正在使用以下内容:

var wwwForm = new WWWForm();
//wwwForm.AddField ("access_token", "A-T I NEED");
wwwForm.AddBinaryData("image", screenshot, "InteractiveConsole.png");
wwwForm.AddField("message", "herp derp.  I did a thing!  Did I do this right?");
FB.API("/PAGE-ID/photos", HttpMethod.POST, HandleResult, wwwForm);

我尝试手动放置访问令牌,但没有用(所以我将其注释掉)。

我收到一个错误,告诉我我需要 publish_actions,这是不正确的,因为我没有尝试 post 作为用户。如果我也得到 publish_actions,Post 会上线,但会在用户说话时 post 进入页面。 (用户也是管理员)

有什么想法吗?谢谢!

因此,我向 Facebook 提交了一份错误报告,结果是:“……目前不支持此功能。”这只是意味着现在可以使用您通过 FB.API 中的 FB.API 获取的页面访问令牌。而且他们不会在文档中告诉您放弃它。

作为解决方法,我只是使用 UnityWebRequest 这样的:

IEnumerator UploadToPage(byte[] screenshot) {

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

    string url = "https" + "://graph.facebook.com/"+ PageID + "/photos";
    url += "?access_token=" + PageAccessToken;

    using (UnityWebRequest www = UnityWebRequest.Post(url, wwwForm))

    {
        yield return www.Send();

        if (www.isError)
        {
            Debug.Log(www.error);
        }
        else
        {
            Debug.Log("Form upload complete!");
        }
    }

    Debug.Log(url);
}