私はプライム [31] ソーシャル ネットワーキング プラグインと呼ばれる Facebook を処理するためにユニティ プラグインを使用しています。次のような場合にうまく機能します。
void onGraph()
{
Facebook.instance.graphRequest( "me", HTTPVerb.GET, ( error, obj ) =>
{
// if we have an error we dont proceed any further
if( error != null )
return;
if( obj == null )
return;
// grab the userId and persist it for later use
var ht = obj as Dictionary<string,object>;
_userId = ht["id"].ToString();
Debug.Log( "me Graph Request finished: " + _userId );
Prime31.Utils.logObject( ht );
} );
}
それはこれを返します:
--------- IDictionary ---------
id: ##########
name: Mike O'Connor
first_name: Mike
last_name: O'Connor
link: https://www.facebook.com/##########
username: ##########
etc...
そして、私は一見、任意のキーを取得して、次のように変数に入れることができますよね?:
_userId = ht["id"].ToString();
しかし、私のゲームをプレイしている全員のスコアを要求すると:?
void onGetScore()
{
Facebook.instance.graphRequest( "AppID/scores", HTTPVerb.GET, ( error, obj ) =>
{
// if we have an error we dont proceed any further
if( error != null )
return;
if( obj == null )
return;
// grab the userId and persist it for later use
var ht = obj as Dictionary<string, object>;
_score = ht["score"].ToString();
Prime31.Utils.logObject( ht );
} );
}
次のようなネストされた辞書/リストを返します。
--------- IDictionary ---------
--------- IList ---------
data:
--------- IDictionary ---------
user: --------- IDictionary ---------
name: Mike O'Connor
id: ##########
score: 5677
application: --------- IDictionary ---------
name: ##########
namespace: ##########
id: ##########
今はネストされているので、これを使用することはできませんよね?
_score = ht["score"].ToString();
ネストされたキーを取得するにはどうすればよいですか? それは単なる構文の問題ですか、それとも再キャストする必要がありますか (または他の何か)?