|
Project Information
Featured
Downloads
|
新浪微博API OAuth 2 Java / Android客户端运行环境Java 1.5+ 依赖: 仅Commons Logging 如果您在Android环境测试成功,欢迎告诉我。 下载地址http://code.google.com/p/sinaweibojava/downloads/list 接口源码: http://code.google.com/p/sinaweibojava/source/browse/src/com/itranswarp/weibo/api/ApiClient.java 描述文件: http://code.google.com/p/sinaweibojava/source/browse/codegenerator/weibo.yaml 使用简介注册微博App后,可以获得app key和app secret,然后定义网站回调地址: import com.itranswarp.weibo.api.*; String APP_KEY = "1234567"; // app key String APP_SECRET = "abcdefghijklmn"; // app secret String CALLBACK_URL = "http://www.example.com/callback"; // callback url 在网站放置“使用微博账号登录”的链接,当用户点击链接后,引导用户跳转至如下地址: String url = new ApiClientBuilder(APP_KEY, APP_SECRET).getAuthUrl(CALLBACK_URL); // TODO: redirect to url 用户授权后,将跳转至网站回调地址,并附加参数code=abcd1234: // 获取URL参数code:
String code = request.getParameter("code");
ApiClientBuilder builder = new ApiClientBuilder(APP_KEY, APP_SECRET);
AccessToken accessToken = builder.requestAccessToken(code, CALLBACK_URL);
// TODO: 在此可保存accessToken
// 创建ApiClient对象:
ApiClient client = builder.create(accessToken);然后,可调用任意API: JsonObject r1 = client.statusesUserTimeline();
JsonObject r2 = client.statusesUpdate("测试OAuth 2.0发微博");
JsonObject r3 = client.statusesUpload("测试OAuth 2.0带图片发微博", new File("/Users/michael/test.png"));使用限制仅支持Web方式调用,不支持口令方式验证。 补充说明JsonObject是有效的Json对象,可根据文档获取任意类型的值,如: JsonObject jo = ...
String screen_name = jo.get("screen_name");
Long uid = jo.get("uid");
Object[] statuses = jo.get("statuses");
String display_name = jo.get("display_name"); // JsonException! No such field "display_name"!
String display_name = jo.get("display_name", "unknown"); // OK, return "unknown" when no such field.
Long screen_name = jo.get("screen_name"); // ClassCastException! Cannot cast from String to Long!由于Java静态类型的限制,ApiClient.java和ApiLoader.java代码是通过weibo.yaml描述文件自动生成的。 weibo.yaml包含新浪微博的API描述信息,任何新API必须先添加至weibo.yaml,然后运行Main重新生成代码。 同一个API方法会有多个重载方法,带文件上传的API同时支持File参数和InputStream参数。如果使用InputStream参数,调用者负责关闭流,ApiClient不会自动关闭。 若调用出错,会抛出WeiboApiException,该异常包含errorCode,error和request三个字段,与新浪返回的出错json对应。具体错误原因请查询新浪文档。 若HTTP响应出错(例如404),会抛出IOException。 BUG报告http://code.google.com/p/sinaweibojava/issues/list 参考新浪微博API文档:http://open.weibo.com/wiki/ |