0

提供された「Large」(10000から始まる)を含むFQLでクエリを実行する際に問題が発生しました。ユーザーID

これは機能していないものの例です:

fql?q=SELECT uid, first_name,last_name,pic,pic_square,name 
        FROM user 
        WHERE uid=100002445083370

文字列として渡されるように長い数値をカプセル化する方法はありますか?

別の例を次に示します。

/fql?q=SELECT src_big 
    FROM photo 
    WHERE aid IN (SELECT aid 
                    FROM album 
                    WHERE  owner=100002445083370 AND type="profile") 
    ORDER BY created DESC LIMIT 1

誰かがこの問題を解決することができましたか?グラフエクスプローラーでクエリをテストしていますが、運がありません。

4

2 に答える 2

2

問題が何であるかわかります、

渡そうとしているユーザーIDは「100002445083367」であるはずですが、友達のリストを照会してユーザーIDを取得すると、「uid」:1.0000244508337e + 14が返されます。これは短縮されています:100002445083370( phpはe+14を削除します)2番目のクエリを破棄します。PHPとJavascriptの間でIDをやり取りする間、取得しているIDが数値ではなく文字列値として保持されていることを確認する必要があります。

問題は、PHPがJSON_DECODEを処理する方法にあります。Facebook PHP SDKを変更し、json_decodeの前にpreg_replaceを追加する必要がありました。json_decodeが最初に文字列に変換することで、大きな整数をfloatに変換しないようにします。

コードは次のとおりです。base_facebook.phpの803行目:

$result = json_decode(preg_replace('/("\w+"):(\d+)/', '\\1:"\\2"', $this->_oauthRequest($this->getUrl($domainKey, $path),$params)), true);

この件に関する詳細は次のとおりです:http: //forum.developers.facebook.net/viewtopic.php?id = 20846

于 2012-02-17T15:51:28.560 に答える
0

「機能しない」とはどういう意味ですか?
そのクエリはGraphAPIExplorerで機能しますが、応答は

{
  "data": [
  ]
}

user-idは有効ではないと思います。 https://www.facebook.com/profile.php?id=100002445083370で「ページが見つかりません」というエラーが表示されます。

于 2012-02-17T03:51:42.180 に答える