下载好源码,在eclipse中布署后。(其中详细的请查看源码)
1.申请点点网帐号和密码:
2.修改里面的常量类
DDAPIConstants
3.根据刚才申请到的Client ID 来取得CODE
https://api.diandian.com/oauth/authorize?client_id=uGv2iH1ONw&response_type=code&scope=read,write
然后输入帐号和密码之后,点击确定,会在brower url中出现:
其中这个code (jACgLB)非常重要.
4.查看测试类
DDClientTest
修改里面的testDDClient代码,
如下所示:
//数据库操作类
DBConndb = new DBConn();
DDClient dd = newDDClient(DDAPIConstants.APP_KEY, DDAPIConstants.APP_SECRET,
DDAPIConstants.REDIRECT_URI);
dd.setDdHttpTools(newHttpsTools());
// dd.initAccessTokenByPassword(DDAPIConstants.USER_NAME,DDAPIConstants.USER_PASSWORD);
//第一次运行的时候才会用到,后面就不会用到了
// if(mark){
// dd.initAccessTokenByCode("jACgLB");
// Token token = dd.getToken();
// System.out.println(token.getAccessToken());
//
// dd.refreshToken();
// Token token2 = dd.getToken();
// //System.out.println(token2.getAccessToken());
// //存起来
// db.saveToDb(token2);
//
// mark = false;
// }
// else{
Token token3 = db.getLastRow();
dd.setToken(token3);
System.out.println(token3);
// String[] scope = token3.getScope();
// System.out.println(scope[0]);
dd.refreshToken();
Token token4 = dd.getToken();
db.saveToDb(token4);
// }
其中DBConn
中我写的DB数据库处理类,它无非用了两件事情,第一是保存最新的 Token相关属性,第二件事取出最新的Token相关属性。
5.DBConn类相关方法如下所示:
package com.diandian.api.sdk.java.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.diandian.api.sdk.Token;
publicclass DBConn {
publicConnectionconn =null;
/**
* 在测试类中进行测试
* @param args
*/
publicstaticvoidmain(String[] args) {
//saveToDb();
}
publicConnection getConnection(){
try{
Class.forName("com.mysql.jdbc.Driver");
conn =DriverManager.getConnection(
"jdbc:mysql://localhost:3306/policedb?useUnicode=true&characterEncoding=UTF8",
"root","123");
}catch(Exceptionevt){
evt.printStackTrace();
}
returnconn;
}
/**
* 插入至数据库
* @paramtoken
*/
publicvoidsaveToDb( Token token) {
try{
String insertSQL ="insert into token_table(access_token, refresh_token,token_type,expires_in," +
"last_update_time,scope) values(?,?,?,?,?,?)";
PreparedStatement ps = getConnection().prepareStatement(insertSQL);
ps.setString(1,token.getAccessToken());
ps.setString(2,token.getRefreshToken());
ps.setString(3,token.getTokenType());
ps.setString(4, String.valueOf(token.getExpiresIn()));
ps.setString(5, String.valueOf(token.getLastUpdateTime()));
String[] scope = token.getScope();
//取数组第一条数据放入数据库中
ps.setString(6, scope[0]);
ps.executeUpdate();
}catch(Exceptionevt){
evt.printStackTrace();
}
}
/**
* 取数据库最后一条数据的内容
*/
public TokengetLastRow(){
Token token =newToken();
try{
//取数据库最后一条数据的内容 select top 1 ID from [yourtable]order by ID desc
String selectSQL ="select * from token_table order by id desc limit 1 ";
PreparedStatement ps =getConnection().prepareStatement(selectSQL);
ResultSet resultSet =ps.executeQuery();
//如果有记录的话
if(resultSet.next()){
token.setAccessToken(resultSet.getString("access_token"));
token.setRefreshToken(resultSet.getString("refresh_token"));
token.setExpiresIn(Long.parseLong(resultSet.getString("expires_in")));
token.setTokenType(resultSet.getString("token_type"));
String firstScope = resultSet.getString("scope");
String[] scope =newString[1];
scope[0] =firstScope;
//组装数组数据
token.setScope(scope);
}
}catch(Exceptionevt){
evt.printStackTrace();
}
return token;
}
}
6.最后一步就是通过写代码的方式发布图片,文字,链接,语音,视频等信息。
测试代码如下所示:
public void testGet() {
TagView tagView = newDDClientInvoker(getClient(),newDefaultJsonParser()).getMyTags();
DDClientInvoker ddClientInvoker = newDDClientInvoker(getClient(),newDefaultJsonParser());
System.out.println(ddClientInvoker.getUserInfo());
//发布文字
//ddClientInvoker.postText("******************","1", "it", "slug", "it的世界", "引导世界潮流!");
//ddClientInvoker.postText("*******************", "2","it", "slug2", "phone5", "phone5引导世界潮流!");
//slug为自定义链接地址,不可重复,否则会报错
//错误如下所示:
/*** code=400000,msg=你输入的自定义链接地址已被占用,请重新输入 **/
//发布照片
ddClientInvoker.postPhoto("*******************","1", "it","slug3", "这个一点通过JAVA API 方式上传的图片", "F:\\截图\\background.png");
//如果操作过快,在它的时间间隔内操作的话,会报如下问题:
/** [code=400000, msg=操作太快啦,点点有点儿跟不上,稍等稍等一下 :)] **/
//得到博客名
//*****.diandian.com 这个是我的名字
System.out.println(tagView.toString());
}
版权声明:本文为haha_mingg原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。