App安装界面:
1. 首先需要安装App – 如果尚未配置页面, 可直接使访问:http://www.facebook.com/login.php?api_key=<API_KEY> 以直接进入app安装页面.
2. 访问 https://login.facebook.com/code_gen.php?api_key=API_KEY&v=1.0 获得one-time code
3. 进入App页面, 查看地址栏中的SessionKey, 此key即为Infinite Session Key.
需求: 通过Java端直接发布内容到Facebook Wall.
使用的API:
http://code.google.com/p/facebook-java-api/ 该API需要依附于HttpClient3, Json. 源自官方Java api.
Java端发布代码:
/** * update Facebook wall. * @param infiniteSessionKey * @param mesg * @return */ public boolean publishMesg(String infiniteSessionKey, String mesg) { try { FacebookJsonRestClient facebook = new FacebookJsonRestClient(API_KEY, SECRET_KEY, infiniteSessionKey); FacebookJsonRestClient facebookClient = (FacebookJsonRestClient)facebook; facebookClient.stream_publish(mesg, null, null, null, null); return true; } catch (Exception e) { e.printStackTrace(); return false; } }
对于普通用户:
1. 安装并授权程序
2. 获得infiniteSessionKey, Java端将使用infiniteSessionKey随时访问更新Facebook.
主要参考: http://blog.theunical.com/facebook-integration/facebook-java-api-example-to-publish-on-wall/
Java端自动更新Twitter状态 – 不需要用户授权或输入Code.
1. 用户需要自行创建一个Twitter App (http://dev.twitter.com/apps)
2. 获得Consumer key&Secret, Access Token&Secret 四对数据
3. 使用Twitter4J更新状态:
/** * 更新Twitter状态 * @param consumerKey * @param consumerSecret * @param accessToken * @param accessTokenSecret * @param mesg * @return */ public boolean publishMesg(String consumerKey, String consumerSecret, String accessToken, String accessTokenSecret, String mesg) { try { TwitterFactory tf = new TwitterFactory(); AccessToken accessTokenObj = new AccessToken(accessToken, accessTokenSecret); // 创建AccessToken, 以便直接访问Twitter Twitter twitter = tf.getOAuthAuthorizedInstance(consumerKey, consumerSecret, accessTokenObj); // 根据Consumer跟AccessToken获得Twitter实例 twitter.updateStatus(mesg); // 更新状态 return true; } catch (Exception e) { e.printStackTrace(); return false; } }
Twitter4J地址: http://twitter4j.org – 只需Include一个jar就可以, 没有其他dependency;
关于Twitter4J:
1. 作者Yusuke Yamamoto(应该不是那个演员),
他还是Sina微博Java SDK的作者(依照该页面: http://open.t.sina.com.cn/wiki/index.php/SDK来看, 新浪默许之为官方SDK)
看Javaeye这几位无知的仁兄: http://www.javaeye.com/topic/638129 – API而已, 在Sina java SDK中发现几个Twitter4J没什么大不了的, 这个蛋扯的太大了.
2. 在TwitterFactory中, 作者似乎试图使用单例模式, 但看上去只是徒有getInstance()的方法, 未真正实现单例
需求: (使用JDBC) 在SQL中增加时间限制
简单错误的写法:
SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd”);
String dateNow = df.format(new Date(System.currentTimeMillis())); //”2010-11-19″; //new Date(System.currentTimeMillis()).toString();
然后将dateNow加入到SQL中. maybe可工作, 但不能保证数据库平台迁移后仍可继续工作.
正确的解决方法, 使用PreparedStatement设定SQL参数:
StringBuilder sb = new StringBuilder("SELECT oue FROM OUEnroll oue WHERE oue.user_ID = "); sb.append(user.getUser_ID()).append(" AND (oue.dateStart IS NULL OR ").append("?2")... // 省略若干 select.setParameter(1, user.getUser_ID()); select.setParameter(2, new Date(System.currentTimeMillis()));
JDBC会根据具体的数据库Driver处理Date并加入到SQL中.
// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.