Так что я реализовал Facebook SDK в своем проекте, здесь проблема в том, что FBlogin не работает, когда у меня есть приложение Facebook на моем устройстве Android. Пожалуйста, моя и моя команда застряли в этом материале. Для более подробной информации, пожалуйста, повторите на этот пост.
Вот код моего Facebook. Это прекрасно работает, когда я удаляю приложение Facebook на моем устройстве.
С приложением facebook на моем устройстве Android: когда я открываю мою игру, появляется окно Facebook, как будто вы хотите продолжить ввод запроса на вход в систему, когда я нажимаю продолжить, он не получает мои данные, такие как «Имя и изображение профиля»
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Facebook.Unity;
using Facebook.MiniJSON;
using UnityEngine.UI;
using System.IO;
using System;
public class Login : MonoBehaviour
{
public string fbname;
public string get_data;
public InputField login_name;
public Image profilePic;
public Text fbNameText,FriendsText;//BABJI
public GameObject loginPanel,mainPanel;
public bool loggedIn;
void Awake ()
{
if (!FB.IsInitialized)
{
FB.Init(() =>
{
if (FB.IsInitialized)
FB.ActivateApp();
else
Debug.LogError("Couldn't initialize");
},
isGameShown =>
{
if (!isGameShown)
Time.timeScale = 0;
else
Time.timeScale = 1;
});
}
else
FB.ActivateApp();
}
void Start()
{
if (GameSaver.instance.isFBLogin) {
loginPanel.SetActive (false);
login_name.gameObject.SetActive (true);
mainPanel.SetActive (true);
// StartCoroutine (DelayLogIn ());
} else {
loginPanel.SetActive (true);
}
}
// IEnumerator DelayLogIn()
// {
// yield return new WaitForSeconds (0.1f);
//
// }
private void InitCallback ()
{
if (FB.IsInitialized) {
// Signal an app activation App Event
FB.ActivateApp();
// Continue with Facebook SDK
// ...
} else {
Debug.Log("Failed to Initialize the Facebook SDK");
}
}
private void OnHideUnity (bool isGameShown)
{
if (!isGameShown) {
// Pause the game - we will need to hide
Time.timeScale = 0;
} else {
// Resume the game - we're getting focus again
Time.timeScale = 1;
}
}
public void LoginCalled()
{
if (!FB.IsLoggedIn)
{
var perms = new List<string> (){ "public_profile", "email" };
FB.LogInWithReadPermissions (perms, AuthCallback);
}
else
{
//
}
// you are already logged in, do something
FB.API("me?fields=name", HttpMethod.GET, GetFacebookData);
FB.API("me/picture?type=square&height=128&width=128", HttpMethod.GET, GetProfilePicture);
login_name.gameObject.SetActive (true);
mainPanel.SetActive (true);
loginPanel.SetActive (false);
GameSaver.instance.isFBLogin=true;
GameSaver.instance.SaveGameData ();
}
private void AuthCallback (ILoginResult result)
{
if (FB.IsLoggedIn)
{
// AccessToken class will have session details
var aToken = Facebook.Unity.AccessToken.CurrentAccessToken;
// Print current access token's User ID
Debug.Log(aToken.UserId);
// Print current access token's granted permissions
foreach (string perm in aToken.Permissions)
{
Debug.Log(perm);
}
FB.API("me?fields=name", Facebook.Unity.HttpMethod.GET, GetFacebookData);
//FB.API("/me/picture?redirect=false", HttpMethod.GET, GetProfilePicture);
//BABJI
FB.API("me/picture?type=square&height=128&width=128", HttpMethod.GET, GetProfilePicture);
login_name.gameObject.SetActive (true);
mainPanel.SetActive (true);
loginPanel.SetActive (false);
GameSaver.instance.isFBLogin=true;
GameSaver.instance.SaveGameData ();
//BABJI
loggedIn = FB.IsLoggedIn;
}
else
{
Debug.Log("User cancelled login");
}
}
void GetFacebookData(IResult result)
{
fbname = result.ResultDictionary["name"].ToString ();
login_name.text = fbname ;
login_name.gameObject.SetActive (true);
fbNameText.text = fbname;
Debug.Log("fbName: " + fbname);
}
private void GetProfilePicture(IGraphResult result)
{
if (result.Error == null && result.Texture != null)
{
profilePic.sprite = Sprite.Create (result.Texture, new Rect (0, 0, 128, 128), new Vector2 ());
}
}
}