package com.tencent.weibo.beans;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class OAuth {
private String oauth_consumer_key = "671dc036a4924fa39027abe4b7a7091a";// AppKey(client credentials)
private String oauth_consumer_secret = "22b430ced88be161924acdfe40dbb68c";// 签名密钥1
private String oauth_signature_method = "HMAC-SHA1";// 签名方法,暂只支持HMAC-SHA1
private String oauth_timestamp = "";// 时间戳
private String oauth_nonce = "";// 单次值,随机字符串,防止重放攻击
private String oauth_callback = "null";// 认证成功后浏览器会被重定向到这个url中
private String oauth_version = "1.0";// (可选)
private String oauth_token = "";//授权码
private String oauth_token_secret = ""; // 签名密钥2
private String oauth_verifier = ""; //验证码
private int status = 0;//认证状态,0:成功,1:Request失败,2:Access失败
private Account account = new Account(); // 个人账户信息
private String msg = "";
private Random random = new Random();
public OAuth(){
super();
}
public OAuth(String oauth_callback) {
super();
this.oauth_callback = oauth_callback;
}
public OAuth(String oauth_consumer_key,String oauth_consumer_secret,String oauth_callback) {
super();
this.oauth_consumer_key = oauth_consumer_key;
this.oauth_consumer_secret = oauth_consumer_secret;
this.oauth_callback = oauth_callback;
}
public List getParams() {
List parameters = new ArrayList();
oauth_timestamp = this.generateTimeStamp();
oauth_nonce = this.generateNonce();
if(null!=oauth_consumer_key && !"".equals(oauth_consumer_key.trim()))
parameters.add(new QParameter("oauth_consumer_key", oauth_consumer_key));
if(null!=oauth_signature_method && !"".equals(oauth_signature_method.trim()))
parameters.add(new QParameter("oauth_signature_method", oauth_signature_method));
if(null!=oauth_timestamp && !"".equals(oauth_timestamp.trim()))
parameters.add(new QParameter("oauth_timestamp", oauth_timestamp));
if(null!=oauth_nonce && !"".equals(oauth_nonce.trim()))
parameters.add(new QParameter("oauth_nonce", oauth_nonce));
if(null!=oauth_callback && !"".equals(oauth_callback.trim()))
parameters.add(new QParameter("oauth_callback", oauth_callback));
if(null!=oauth_version && !"".equals(oauth_version.trim()))
parameters.add(new QParameter("oauth_version", oauth_version));
return parameters;
}
public List getAccessParams(){
List parameters = this.getTokenParams();
if(oauth_verifier!=null && !"".equals(oauth_verifier)){
parameters.add(new QParameter("oauth_verifier", oauth_verifier));
}
return parameters;
}
public List getTokenParams() {
List parameters = new ArrayList();
oauth_timestamp = this.generateTimeStamp();
oauth_nonce = this.generateNonce();
parameters.add(new QParameter("oauth_consumer_key", oauth_consumer_key));
parameters.add(new QParameter("oauth_signature_method", oauth_signature_method));
parameters.add(new QParameter("oauth_timestamp", oauth_timestamp));
parameters.add(new QParameter("oauth_nonce", oauth_nonce));
parameters.add(new QParameter("oauth_token", oauth_token));
parameters.add(new QParameter("oauth_version", oauth_version));
return parameters;
}
public String getOauth_consumer_key() {
return oauth_consumer_key;
}
public void setOauth_consumer_key(String oauth_consumer_key) {
this.oauth_consumer_key = oauth_consumer_key;
}
public String getOauth_signature_method() {
return oauth_signature_method;
}
public void setOauth_signature_method(String oauth_signature_method) {
this.oauth_signature_method = oauth_signature_method;
}
public String getOauth_consumer_secret() {
return oauth_consumer_secret;
}
public void setOauth_consumer_secret(String oauth_consumer_secret) {
this.oauth_consumer_secret = oauth_consumer_secret;
}
public String getOauth_timestamp() {
return oauth_timestamp;
}
public void setOauth_timestamp(String oauth_timestamp) {
this.oauth_timestamp = oauth_timestamp;
}
public String getOauth_nonce() {
return oauth_nonce;
}
public void setOauth_nonce(String oauth_nonce) {
this.oauth_nonce = oauth_nonce;
}
public String getOauth_callback() {
return oauth_callback;
}
public void setOauth_callback(String oauth_callback) {
this.oauth_callback = oauth_callback;
}
public String getOauth_version() {
return oauth_version;
}
public void setOauth_version(String oauth_version) {
this.oauth_version = oauth_version;
}
public String getOauth_token() {
return oauth_token;
}
public void setOauth_token(String oauth_token) {
this.oauth_token = oauth_token;
}
public String getOauth_token_secret() {
return oauth_token_secret;
}
public void setOauth_token_secret(String oauth_token_secret) {
this.oauth_token_secret = oauth_token_secret;
}
public String getOauth_verifier() {
return oauth_verifier;
}
public void setOauth_verifier(String oauth_verifier) {
this.oauth_verifier = oauth_verifier;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public Account getAccount() {
return account;
}
public void setAccount(Account account) {
this.account = account;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
/**
* Generate the timestamp for the signature.
*
* @return
*/
private String generateTimeStamp() {
return String.valueOf(System.currentTimeMillis() / 1000);
}
/**
* Just a simple implementation of a random number between 123400 and
* 9999999
*
* @return
*/
private String generateNonce() {
return String.valueOf(random.nextInt(9876599) + 123400);
}
}
2。。运行TestFav_API类。。
会弹出 浏览器 页面,。出现授权的页面
点击授权按钮。。。。
页面会跳转到另外一个链接。就是刚才oauth_callback 填写的地址。
例如 的是跳到这样的链接。。。。 URL中有个这样的oauth_verifier 的值,复制到这个后面的数值。粘贴后 eclipse 的控制台上,回车 。 在控制台中可以得到 Oauth_token 和Oauth_token_secret 的值。。3,。。。新建 UpdateStatus 类,来准备发布一条微博。。public class UpdateStatus {
public static void main(String[] args) throws Exception {
OAuth oauth = new OAuth();
//天宇me
oauth.setOauth_token("xxxxxxxxxxxxxxxxxx");
oauth.setOauth_token_secret("xxxxxxxxxxxxxx");
T_API t_API = new T_API();
//String x = t_API.add(oauth, WeiBoConst.ResultType.ResultType_Json, "GO.GO.GO...", "127.0.0.1", "116.471090", "39.905286");
String x = t_API.add_pic(oauth, WeiBoConst.ResultType.ResultType_Json, "\"..", "127.0.0.1", "116.4", "39.9", "http://www.goweng.com/uploads/allimg/110216/0RH25339-0.jpg");
System.out.println("x=="+x);
}
} new一个OAuthor, 把刚才得到的 Oauth_token 和 Oauth_token_secret 添加上, 调用 add方法,第一个参数 固定写,第二个 设置返回的格式,第三个参数 填写 要发布的微博内容, 第四个参数 ‘127.0.0.1’填写本地地址,固定就写这个吧, 最后两个是 经度和纬度, 可以空着不填写。。。(不知道是我哪里出错了还是TX的问题
就算加上经度和纬度数发布后的微博也是不显示地址的。。。)
ok了。 然后就运行这个类吧。。打开微博http://t.qq.com 看看刚才发布的微博。。下载JAVA-SDK-v1.1.8 http://download.csdn.net/detail/macwhirr123/4258161