⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 facebookjsonrestclient.java

📁 FACEBOOK上
💻 JAVA
字号:
package com.facebook.api;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net.URL;import org.json.simple.JSONObject;import org.json.simple.JSONValue;/** * A FacebookRestClient that uses the JSON result format. This means * results from calls to the Facebook API are returned as * <a href="http://www.json.org/">JSON</a> and * transformed into Java <code>Object</code>'s. */public class FacebookJsonRestClient extends FacebookRestClient<Object> {  public FacebookJsonRestClient(String apiKey, String secret) {    this(SERVER_URL, apiKey, secret, null);  }  public FacebookJsonRestClient(String apiKey, String secret, String sessionKey) {    this(SERVER_URL, apiKey, secret, sessionKey);  }  public FacebookJsonRestClient(String serverAddr, String apiKey, String secret, String sessionKey)    throws MalformedURLException {    this(new URL(serverAddr), apiKey, secret, sessionKey);  }  public FacebookJsonRestClient(URL serverUrl, String apiKey, String secret, String sessionKey) {    super(serverUrl, apiKey, secret, sessionKey);  }  /**   * The response format in which results to FacebookMethod calls are returned   * @return the format: either XML, JSON, or null (API default)   */  public String getResponseFormat() {    return "json";  }  /**   * Extracts a String from a result consisting entirely of a String.   * @param val   * @return the String   */  public String extractString(Object val) {    try {      return (String) val;    } catch (ClassCastException cce) {      logException(cce);      return null;    }  }  /**   * Sets the session information (sessionKey) using the token from auth_createToken.   *   * @param authToken the token returned by auth_createToken or passed back to your callback_url.   * @return the session key   * @throws FacebookException   * @throws IOException   */  public String auth_getSession(String authToken)    throws FacebookException, IOException {    if (null != this._sessionKey) {      return this._sessionKey;    }    JSONObject d = (JSONObject) this.callMethod(FacebookMethod.AUTH_GET_SESSION,                                                 new Pair<String, CharSequence>("auth_token", authToken.toString()));    this._sessionKey = (String) d.get("session_key");    Object uid = d.get("uid");    try {      this._userId = ((Long) uid).intValue();    } catch (ClassCastException cce) {      this._userId = Integer.parseInt((String) uid);    }     if (this.isDesktop()) {      this._sessionSecret = (String) d.get("secret");    }    return this._sessionKey;  }  /**   * Parses the result of an API call from JSON into Java Objects.   * @param data an InputStream with the results of a request to the Facebook servers   * @param method the method   * @return a Java Object   * @throws FacebookException if <code>data</code> represents an error   * @throws IOException if <code>data</code> is not readable   * @see JSONObject   */  protected Object parseCallResult(InputStream data, IFacebookMethod method)    throws FacebookException, IOException {    Object json = JSONValue.parse(new InputStreamReader(data));    if (isDebug()) {      log(method.methodName() + ": " + (null != json ? json.toString() : "null"));    }    if (json instanceof JSONObject) {      JSONObject jsonObj = (JSONObject) json;      if (jsonObj.containsKey("error_code")) {        Long errorCode = (Long) jsonObj.get("error_code");        String message = (String) jsonObj.get("error_msg");        throw new FacebookException(errorCode.intValue(), message);      }    }    return json;  }  /**   * Extracts a URL from a result that consists of a URL only.   * For JSON, that result is simply a String.   * @param url   * @return the URL   */  protected URL extractURL(Object url)    throws IOException {    if (!(url instanceof String)) {      return null;    }    return (null == url || "".equals(url)) ? null : new URL( (String) url);  }  /**   * Extracts an Integer from a result that consists of an Integer only.   * @param val   * @return the Integer   */  protected int extractInt(Object val) {    try {      return (Integer) val;    } catch (ClassCastException cce) {      logException(cce);      return 0;    }  }  /**   * Extracts a Boolean from a result that consists of a Boolean only.   * @param val   * @return the Boolean   */  protected boolean extractBoolean(Object val) {    try {      return (Boolean) val;    } catch (ClassCastException cce) {      logException(cce);      return false;    }  }  /**   * Extracts a Long from a result that consists of an Long only.   * @param val   * @return the Integer   */  protected Long extractLong(Object val) {    try {      return (Long) val;    } catch (ClassCastException cce) {      logException(cce);      return null;    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -