Dear team,
I am using Azure Function to create Kid's accounts from parent's account and update data for kid's account after creating it. But it sometimes has the issue "CloudScriptAzureFunctionsHTTPRequestError" and sometimes it is working well. Do you know why and how to fix it?
Here is my code:
public static class CreateAccount { [FunctionName("CreateAccount")] public static async Task<dynamic> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { FunctionExecutionContext<dynamic> context = JsonConvert.DeserializeObject<FunctionExecutionContext<dynamic>>(await req.ReadAsStringAsync()); dynamic args = context.FunctionArgument; //Get Input Data string username = args["Username"]; string password = args["Password"]; string displayName = args["DisplayName"]; string profileData = args["ProfileData"]; //Output Data UserData userData = new UserData(); //set up title id and secret key for admin api to use var adminApiSettings = new PlayFab.PlayFabApiSettings() { TitleId = "XXXXX", DeveloperSecretKey = "XXXXXXXXXX....", }; var adminAPI = new PlayFab.PlayFabAdminInstanceAPI(adminApiSettings); var clientAPI = new PlayFab.PlayFabClientInstanceAPI(adminApiSettings); // Create Account using Username and Password var registerUserResponse = await clientAPI.RegisterPlayFabUserAsync( new PlayFab.ClientModels.RegisterPlayFabUserRequest() { Username = username, Password = password, RequireBothUsernameAndEmail = false }); userData.PlayFabID = registerUserResponse.Result.PlayFabId; userData.Entity = ConvertClientToGroupnModels(registerUserResponse.Result.EntityToken.Entity); // Set DisplayName var updateDisplayNameResponse = await adminAPI.UpdateUserTitleDisplayNameAsync (new PlayFab.AdminModels.UpdateUserTitleDisplayNameRequest() { PlayFabId = userData.PlayFabID , DisplayName = displayName }); // Update User Data Title Dictionary<string, string> userDataTitle = new Dictionary<string, string>() { {"ProfileData", profileData}}; await adminAPI.UpdateUserDataAsync (new PlayFab.AdminModels.UpdateUserDataRequest() { PlayFabId = userData.PlayFabID , Data = userDataTitle, Permission = PlayFab.AdminModels.UserDataPermission.Public }); return userData ; } public static PlayFab.GroupsModels.EntityKey ConvertClientToGroupnModels(PlayFab.ClientModels.EntityKey entityKey) { PlayFab.GroupsModels.EntityKey rtn = new PlayFab.GroupsModels.EntityKey(); rtn.Id = entityKey.Id; rtn.Type = entityKey.Type; return rtn; } } public class UserData { public string PlayFabID = ""; public PlayFab.GroupsModels.EntityKey Entity; }
Thank you so much for your help!!!