簡體   English   中英

所有內容均以管理員帳戶發布,而不是Facebook Unity SDK中的當前用戶發布

[英]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");

希望這對某人有幫助。

提示:

  • 另外,正如@CBroe所提到的那樣,在移動設備上切換帳戶確實非常困難,因此請確保不要准備用於登錄的多個帳戶,因為這會與Facebook SDK混淆。 僅登錄一個帳戶。
  • 請注意,一旦有人登錄Facebook SDK,FB SDK便不在乎您嘗試使用另一個帳戶登錄 ,而是發出所有請求,並在登錄的最后一個(或當前)帳戶上發布內容。
  • 如果你與你的應用程序測試Facebook的整合,請確保您的應用程序不活 (在Facebook的開發者控制台應用程序附近的小綠圖標),並在發展模式 ,you'are與用戶測試分配給測試人員的角色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM