• 利用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包如果不识别,从新导入一下。

  • 相关阅读:
    CentOS 7 修改国内yum源
    k8s 安装
    python2 python3同时安装了scrapy如何区分调用
    scrapy log 设置
    hello django
    linux 分割大文件
    scrapy 对不同的Item进行分开存储
    纯C实现的一套low b 贪吃蛇(娱乐版)
    Python之如何实现一行输入多个值
    HDU2571:命运(DP)
  • 原文地址:https://www.cnblogs.com/m3Lee/p/3146630.html
Copyright © 2020-2023  润新知