[英]Everything publishes on administrator account instead of the current user in Facebook Unity SDK
所以我已經使用Facebook Unity SDK了幾天,要用它完成工作真是一場艱巨的努力。
因此,我現在面臨的問題是一切:共享,Scores API,照片共享是在管理員帳戶而不是我當前使用的帳戶上完成的。
例:
我在帳戶B (我的應用程序上的測試用戶)的游戲中獲得了1000分,然后我嘗試將該得分上傳/附加到它的Facebook帳戶。
相反,該分數已上傳/附加到我的帳戶A (該應用程序上的管理員帳戶)。
圖片,共享等也遵循相同的條件。
將分數上傳/附加到FB帳戶的代碼:
public void WriteScoreToFBAccount()
{
Debug.Log("Trying to Upload attach Score to FB account...\n");
lg.WriteToTextUIObject("Trying to Upload attach Score to FB account...\n");
var wwwForm = new WWWForm();
wwwForm.AddField("score", 1999);
FB.API("/me/scores", HttpMethod.POST, FacebookProcessCallBack, wwwForm);
}
分享圖片的代碼:
public void TakeAScreenShot()
{
Debug.Log("Taking a Screenshot and trying to Upload it to FB...\n");
lg.WriteToTextUIObject("Taking a Screenshot and trying to Upload it to FB...\n");
ShareStatusMainWindowBackImage.SetActive(true);
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");
FB.API("me/photos", HttpMethod.POST, FacebookProcessCallBack, wwwForm);
}
范例2:[更新]
Debug.Log("Trying to get FB friends Score...\n");
lg.WriteToTextUIObject("Trying to get FB friends Score...\n");
CurrentFacebookProcess = "GetFBScoreBoard";
string url = "https" + "://graph.facebook.com/" + AccessToken.CurrentAccessToken.UserId + "/?fields=scores%7Bapplication%2Cscore%7D&";
url += "access_token=" + AccessToken.CurrentAccessToken.TokenString;
WWWForm wwwForm = new WWWForm();
FB.API(url, HttpMethod.GET, FacebookProcessCallBack, wwwForm);
從FB Unity SDK文檔開始:
AccessToken Facebook.Unity命名空間中的類,包含用戶最近授權時授予您的應用程序的訪問令牌
它不應該是僅因為該用戶授權而用於該用戶的訪問令牌嗎? 還是不是這樣,而用戶僅授權了該應用程序?
示例3:登錄過程[更新]
public void LogIntoFB_Publish()
{
Debug.Log("Starting a login proccess with publish permissions...\n");
lg.WriteToTextUIObject("Starting a login proccess with publish permissions...\n");
FB.LogInWithPublishPermissions(new List<string>() { "publish_actions"}, AuthCallback);
}
public void LogIntoFB_Read()
{
Debug.Log("Starting a login proccess with read permissions...\n");
lg.WriteToTextUIObject("Starting a login proccess with read permissions...\n");
FB.LogInWithReadPermissions(new List<string>() { "public_profile", "user_games_activity", "user_friends" }, AuthRead);
}
開發者控制台:
我是Facebook SDK的新手,因此不勝感激。
順便說一句,Facebook SDK已通過其Unity教程在此Unity項目上進行了完整配置: https : //developers.facebook.com/docs/unity/gettingstarted
所以我的問題是,為什么我通過FB應用發布的所有內容都轉到我的管理員帳戶,而不是該游戲中登錄的當前帳戶?
另外,我想知道這與我的應用尚未獲得批准但測試用戶仍可以正常工作有關嗎?
我設法通過以下方法解決了這個問題:
1.落實以注銷登錄流程(非常非常感謝用戶@CBroe)如果有人已經用一個簡單的if語句登錄:
if (FB.IsLoggedIn == true)
{
Debug.Log("[Facebook SDK]: Already LOGGED In, LOGGIN OUT...\n");
FB.LogOut();
}
else if (FB.IsLoggedIn == false)
Debug.Log("[Facebook SDK]: User is NOT LOGGED IN, NOT DOING ANYTHING...\n");
希望這對某人有幫助。
提示:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.