java 通过腾讯API 发微博

来源:互联网 发布:topshop淘宝旗舰店 编辑:程序博客网 时间:2024/06/15 07:36

首先准备好申请的appkey和App Secret。。
  先将项目 导入到eclipse中,
打开OAuthor类
oauth_consumer_key :你的appkey
oauth_consumer_secret :你的App Secret
oauth_callback :这个可填可不填。。
其他的就不用管了。


-------------------------------------------------------------------------

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";// 签名密钥1private String oauth_signature_method = "HMAC-SHA1";// 签名方法,暂只支持HMAC-SHA1private 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 = ""; // 签名密钥2private 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<QParameter> getParams() {List<QParameter> parameters = new ArrayList<QParameter>();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<QParameter> getAccessParams(){List<QParameter> parameters = this.getTokenParams();if(oauth_verifier!=null && !"".equals(oauth_verifier)){parameters.add(new QParameter("oauth_verifier", oauth_verifier));}return parameters;}public List<QParameter> getTokenParams() {List<QParameter> parameters = new ArrayList<QParameter>();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  

	
				
		
原创粉丝点击