1

Facebookが提供する標準APIを使用しています。トランザクションが失敗した場合の応答は次のようになります。

{
  "error": {
    "message": "Error validating access token: Session has expired at unix 
                time SOME_TIME. The current unix time is SOME_TIME.", 
    "type": "OAuthException", 
    "code": 190
    "error_subcode": 463
}

そして成功したもののようなもの

{"id":"100054544144330556_25940175479504"}

成功したトランザクションを検出するにはどうすればよいですか?「エラー」という単語が含まれているかどうかを解析して確認する必要がありますか、それともより良い方法がありますか?

4

3 に答える 3

0

結果に「エラー」が見つかった場合、FacebookSDKはエラーをスローします。標準のAPIを使用している場合は、同じことを行う必要があります。

たとえば、Facebook PHP SDKでは、これを確認できます(読みやすい方法で、これは100%PHPではありません)。

if (isset('error')) {
    throwAPIException();
}

同じことをしてください。ただし、前にJSONオブジェクトを解析することを忘れないでください。文字列として検索しないでください。「エラー」キーがある場合は、キーと値のペアとして検索してください。

于 2012-09-07T19:53:48.163 に答える
0

FaceBookAPIへのREST呼び出しを支援するライブラリはたくさんあります。RestFBを調べましたか?あなたがAndroid向けに開発しているので、これはあなたにとって価値があると思います。

このフレームワークを使用すると、個々の応答要素から自分自身を抽象化し、本当に重要なもの(オブジェクト自体(ユーザー、コメントなど))を処理できます。

このフレームワークを利用すると、次のようなことができます。

FacebookEngine faceBookEngine = new DefaultFacebookClient(authToken);
User facebookUser = facebookClient.fetchObject("me", User.class);

if (facebookUser == null)
    {
        throw new FacebookOAuthException("Bad user data",
                        "user is null!");
    }
于 2012-09-07T19:58:58.240 に答える
0

Androidでは、最も直接的で簡単な方法は「id」をチェックすることです。

...
JSONObject jason = new JSONObject(jsonString);
...

try{
    String id = jason.getString("id");
} catch(JSONException je) {
    //ID was not found
    ....
}
于 2012-09-07T19:59:36.830 に答える