利用java语言在eclipse下实现在新浪微博开发平台发微博(转)

实现原理:

     开发者利用sdk包开发某个应用完成后,该应用与新浪微博服务器连接,通过HTTP数据形式与服务器的API接口交换数据。在开发过程中,亦可实时调试。

各种语言的软件开发包(SDK)http://open.weibo.com/wiki/SDK

1、下载Java SDK最新的weibo4j-oauth2-beta2.0版本,详细地址和参考文档为:

http://code.google.com/p/weibo4j/,资料超全的。赞一个!!!

2、下载后weibo4j-oauth2-beta2.0.zip后解压在Eclipse目录下的workspace空间里

3、打开Eclipse后导入File-Import-General-Exisiting Projects in workspace,导入成功后出现weibo4j-oauth2的工程。

4、为了能够成功授权登录需要设置config.properties里面的值(内容如下),必须要到微博开放平台注册相关信息,地址为:http://open.weibo.com/,前提是自己注册有一个新浪微博账号和对应密码。

client_ID =          

client_SERCRET =

redirect_URI =

baseURL=https://api.weibo.com/2/

accessTokenURL=https://api.weibo.com/oauth2/access_token

authorizeURL=https://api.weibo.com/oauth2/authorize

5、进入:http://open.weibo.com/后,执行“站内应用”—创建应用。创建站内应用的信息可以任意填写,最好不要绑定域名,否则配置相对比较麻烦。(填写信息会发送邮件激活)

6、创建成功后点击我的应用—应用信息,你会发现自己创建的应用自动生成的App KeyApp Secret,自己需要编辑填写站内应用地址和实际地址,具体如下:

App Key ***

App Secret ***

站内应用地址:是指你这个应用成功发布在新浪微博的对应的地址http://apps.weibo.com/xxxxxxx (xxxxxxx自己可以任意填写命名)

应用实际地址:实际上是你本地创建的应用地址http://www.baidu.com(可以任意填写,但为了成功创建,不出现第三方授权错误,必需填写可实现的回调地址,从而获得地址栏里的“code”值,我这里用了百度官网地址)

7、填写config.properties里的对应内容。(红字加粗是自己手动填写的)

client_ID =App Key的值          

client_SERCRET =App Secret的值

redirect_URI =应用实际地址的值

baseURL=https://api.weibo.com/2/

accessTokenURL=https://api.weibo.com/oauth2/access_token

authorizeURL=https://api.weibo.com/oauth2/authorize

8编译运行weibo4j-oauth2工程下examplesweibo4j.examples.oauth2OAuth4Code.java文件,会进入授权界面,进行成功成全后会自动跳转到回调地址的页面,由于我使用的是http://www.baidu.com,会跳到百度的页面,复制地址栏里内容如下

http://www.baidu.com/?code=xxxxxxxxxxxxxxxx注意code后面的内容值。要根据这个code值获得accessToken,拥有accessToken认证码你的账户就得到微博的认可。编译OAuth4Code跳转到百度时,查看eclipse运行后的Console窗口出现如下内容:

https://api.weibo.com/oauth2/authorize?client_id=xxxxxxxxx&redirect_uri=http://www.baidu.com&response_type=code

Hit enter when it's done.[Enter]:code的值(必须自己填写)

在此输入code里的值,会自动出现如下内容:

0    INFO  [2012-06-08 11:00:53]  code: xxxxxxxxxxxxxxxxxx(code的值)

360  DEBUG [2012-06-08 11:00:53]  Request:

360  DEBUG [2012-06-08 11:00:53]  POSThttps://api.weibo.com/oauth2/access_token

3282 DEBUG [2012-06-08 11:00:56]  Response:

3282 DEBUG [2012-06-08 11:00:56]  https StatusCode:200

3282 DEBUG [2012-06-08 11:00:56]  Server:nginx/1.1.17

3282 DEBUG [2012-06-08 11:00:56]  Date:Fri, 08 Jun 2012 03:01:06 GMT

3282 DEBUG [2012-06-08 11:00:56]  Content-Type:text/plain;charset=UTF-8

3282 DEBUG [2012-06-08 11:00:56]  Content-Length:109

3282 DEBUG [2012-06-08 11:00:56]  Connection:keep-alive

3282 DEBUG [2012-06-08 11:00:56]  Pragma:No-cache

3282 DEBUG [2012-06-08 11:00:56]  Cache-Control:no-cache

3282 DEBUG [2012-06-08 11:00:56]  Expires:Thu, 01 Jan 1970 00:00:00 GMT

3282 DEBUG [2012-06-08 11:00:56]  Api-Server-IP:10.75.25.86

3282 DEBUG [2012-06-08 11:00:56]  X-Varnish:1117492536

3282 DEBUG [2012-06-08 11:00:56]  Age:0

3282 DEBUG [2012-06-08 11:00:56]  Via:1.1 varnish

3313 DEBUG [2012-06-08 11:00:56]  {"access_token":"XXXXXXXXXXXXXXXXX","remind_in":"26384","expires_in":26384,"uid":"XXXXXXXX"}

AccessToken [accessToken=XXXXXXXXXXXXXXXXXXX, expireIn=26384, refreshToken=,uid=XXXXXXXXXX]

这里的access_token就是认证码,这样你的账户就成功得到微博的认可。uid是我自己添加的测试用户,在应用未发布前用于测试的(可以以后设置,如果要设置,在应用信息的高级信息中添加即可,其实uid就是进入“我的微博”后的一串序列号,用以表明身份的)。

接着就是发微博了,任意地方新建一个class文件,编码如下:

import weibo4j.Timeline;

import weibo4j.Weibo;

import weibo4j.http.AccessToken;

import weibo4j.model.Status;

import weibo4j.model.WeiboException;

public class SendWeibo {

public static void main(String[] args) throws WeiboException {

// TODO Auto-generated method stub

Weibo weibo = new Weibo();  

String access_token ="xxxxxxxxxxxxxxx";//这里对应accessToken=XXXXXXXXXXXXXXXXXXX的值

weibo.setToken(access_token);            

Timeline tm = new Timeline();

 Status status = tm.UpdateStatus("慧慧的通过新浪微博开放平台发送的第一条微博,哈哈~~");//自己所发的微博内容,不超过140个字!

}

 }

进入新浪官方微博,就可以查看到自己发的微博了,嘿嘿。。。。

PS:

1.isempty方法在jdk1.5以后才支持,如果当前机器JDK版本低于1.5需要升级或者更改写法。

2.导入的jar包如果不识别,从新导入一下。

原文地址:https://www.cnblogs.com/m3Lee/p/3146630.html