Unity+Playfabにてアカウント情報の編集機能をCloudScriptで実行しようとしております。
下記のコードで返答がNullとなりどこに間違いがあるのかわからず当惑しております。
参考として下記URL先を用いております。
https://community.playfab.com/questions/41927/how-to-access-player-data-using-cloudscript.html
C#
1//クライアント側 2public void CallCloudScript(){ 3 PlayFabClientAPI.ExecuteCloudScript( 4 new ExecuteCloudScriptRequest{ 5 //FunctionName = "helloWorld", 6 FunctionName = "getPlayerDataJSONValue", 7 FunctionParameter = new { inputValue = "player"}, 8 GeneratePlayStreamEvent = true, 9 RevisionSelection = CloudScriptRevisionOption.Live, 10 SpecificRevision = null, 11 }, result => { 12 Debug.Log("CloudScript Connect."); 13 Debug.Log(result.FunctionResult); 14 }, error => { 15 Debug.Log(error.GenerateErrorReport()); 16 } 17 ); 18}
//Playfab CloudScript(サーバー)側 handlers.getPlayerDataJSONValue = function (args, context) { var getPlayerInfo = server.GetUserData ({ PlayFabId: currentPlayerId, Keys: ["TestMessage"], }); var playerInfoObject = JSON.parse(getPlayerInfo.Data.Info.Value); var playerMessage = playerInfoObject.Message; return { playerMSG: playerMessage, playerInfo: playerInfoObject}; };
Playfabのユーザーデータは下記のようになっております。
Key:TestMessage Value:{"Message":"Hello, This it playfab CloudScript Test Text.","Name":"Player"}
確認したこととして、UnityのConsoleにDebug.Log("CloudScript Connect.");
に対応するログとしてCloudScript Connect.
と表示されますが、Debug.Log(result.FunctionResult);
に対応するログとしてNull
と表示されます。
CloudScriptのサンプルとて予め用意されているhelloWorld関数を用いた場合は、"Hello playerID"のメッセージが表示されました。
直接的な原因でなくてもよいので、マズそうなところをご指摘頂ければ幸いです。
追記:
サーバー側のreturnの位置・内容を変更すると文字列が表示されるようになりました。
//Playfab CloudScript(サーバー)側 handlers.getPlayerDataJSONValue = function (args, context) { var getPlayerInfo = server.GetUserData ({ PlayFabId: currentPlayerId, Keys: ["TestMessage"], }); return getPlayerInfo;
return文の位置と結果から推測するに、下記にて問題が発生しているようです。
var playerInfoObject = JSON.parse(getPlayerInfo.Data.Info.Value);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。