2017-04-24 43 views
0

我想发布到Facebook页面作为使用在iOS上运行的Unity Facebook SDK的页面。据我所知,要做到这一点,我需要页面访问令牌manage_pagespublish_pages。我知道我可以从/me/accounts?fields=access_token中得到它,但是如何告诉AccessToken.CurrentAccessToken使用我的页面访问令牌?更改Facebook Unity SDK中的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帖子会上线,但会在用户说话时发布到页面。 (用户也是管理员)

任何想法?谢谢!

回答

0

因此,我向Facebook提交了一个错误报告,结果发现:“......此时此功能不受支持。”这仅仅意味着现在有办法使用通过FB.APIFB.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); 
} 
相关问题