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

如果在结果中发现“错误”,Facebook SDK 将抛出错误。如果您使用的是标准 API,那么您也必须这样做。

例如,在 Facebook PHP SDK 中,您可以看到以下内容(以易于阅读的方式,这不是 100% PHP):

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

做同样的事情。但是不要忘记之前解析 JSON 对象,不要搜索为字符串,如果有一个“错误”键,则搜索为 key->value 对。

于 2012-09-07T19:53:48.163 回答
0

有很多库可以帮助您对 FaceBook API 进行 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 回答