更改 Facebook Unity SDK 中的 CurrentAccessToken

问题描述 投票:0回答:1

我正在尝试使用在 iOS 上运行的 Unity Facebook SDK 发布到 Facebook 页面。据我了解,要做到这一点,我需要带有

manage_pages
publish_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
,这是不正确的,因为我没有尝试以用户身份发布。如果我也得到
publish_actions
,帖子就会上线,但会在用户讲话时发布到页面上。 (用户也是管理员)

有什么想法吗?谢谢!

ios facebook facebook-graph-api unity-game-engine facebook-unity-sdk
1个回答
0
投票

因此,我向 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);
}
© www.soinside.com 2019 - 2024. All rights reserved.