Java使用新浪微博API开发微博应用的基本方法

新浪微博API现在运用比较广泛,做一个完整的开发流程Demo
1、第一步注册,就不多说了,注册帐号以及成为开发者帐号,这步操作不会的话请你马上砸掉电脑拔掉网线回家种田。
2、第二步创建应用,开发者帐号创建好了,打开新浪微博开发平台: http://open.weibo.com
   上面菜单栏点击最后一个 管理中心

如果是web的应用的话选择创建网站接入的应用,然后根据新浪微博的要求balabalabala自己去搞定
  应用创建完毕。点击应用跳转页面,点击查看应用参数,可以看到应用的相关参数,这些参数将会在第四步用到。
3、第三步下载sdk,回到顶部的菜单栏,点击 文档 ,再点击左边菜单栏sdk,选择java sdk,然后balabala下载,这步操作有问题也请回家种田。

所谓的sdk并非是sdk(个人觉得名称有点误导),而是一个可运行的工程,下载完毕之后解压 ,并导入到eclipse,可以看到两个目录 src和example
src是新浪微博的部分
example是实例,接口的demo
4、第四步配置参数,找到src目录下的config.properties
前三个参数需要自己配置 为第二步里说过的应用参数里的参数
后面的都是默认的不需要改
前三个参数配置如下
client_ID为App Key
client_SERCRET为App Secret
redirect_URI为 OAuth2.0授权的回调URL 应用信息>高级信息>OAuth2.0 授权设置下面的授权回调页  这是一个你自己填写的URL 指向的是你自己服务器 当然在开发阶段我们可以使用任何URL 只要能够让我们了解OAuth授权的流程就好了 这里我们就输入一个http://www.baidu.com  取消授权回调页也是如此 注意这里的URL的字符串必须是一致
5、第五步获取AccessToken,正常情况下AccessToken的获取是需要通过OAuth2.0认证的,但是为了更简单我先说一种简单的方法。后面再讲OAuth2.0
还是选择最上面的菜单栏 文档>API>API测试工具
选择创建的应用 点击获取AccessToken 下面的文本框里就是我们要的AccessToken

6、第六步先做一个接口实例
去微博API里随便找一个已有权限的接口,
我随便找了一个 获取用户发布的微博  statuses/user_timeline 做测试用的

点击这个接口查看这个接口详情,可以查看到接口的每个传入参数以及返回参数 这个无需多说。

不使用任何SDK实现Oauth授权并实现简单的发布微博功能:
创建一个Java项目,编写如下代码,具体过程代码中已写的很清楚,这里不再做解释:

注意先修改应用ID、应用密码和回调页面成你自己的!访问授权页面:

package com;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Scanner;

import javax.net.ssl.X509TrustManager;

/**
 * @author 刘显安
 * 不使用任何SDK实现新浪微博Oauth授权并实现发微薄小Demo
 * 日期:2012年11月11日
 */
public class Test
{
  static String clientId="2355065950";//你的应用ID
  static String clientSecret="72037e76bee00315691d9c30dd8a386a";//你的应用密码
  static String redirectUri="https://api.weibo.com/oauth2/default.html";//你在应用管理中心设置的回调页面

  public static void main(String[] args) throws Exception
  {
    testHttps();//测试
    //第一步:访问授权页面获取授权
    System.out.println("请打开你的浏览器,访问以下页面,登录你的微博账号并授权:");
    System.out.println("https://api.weibo.com/oauth2/authorize?client_id="+clientId+"&response_type=code&redirect_uri="+redirectUri+"&forcelogin=true");
    //第二步:获取AccessToken
    System.out.println("请将授权成功后的页面地址栏中的参数code:");
    String code=new Scanner(System.in).next();
    getAccessToken(code);
    //第三步:发布一条微博
    System.out.println("请输入上面返回的值中accessToken的值:");
    String accessToken=new Scanner(System.in).next();
    updateStatus("发布微博测试!来自WeiboDemo!", accessToken);
  }
  /**
   * 测试能否正常访问HTTPS打头的网站,
   */
  public static void testHttps()
  {
    try
    {
      trustAllHttpsCertificates();//设置信任所有的http证书
      URL url=new URL("https://api.weibo.com/oauth2/default.html");
      URLConnection con=url.openConnection();
      con.getInputStream();
      System.out.println("恭喜,访问HTTPS打头的网站正常!");
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }
  /**
   * 以Post方式访问一个URL
   * @param url 要访问的URL
   * @param parameters URL后面“?”后面跟着的参数
   */
  public static void postUrl(String url,String parameters)
  {
    try
    {
      trustAllHttpsCertificates();//设置信任所有的http证书
      URLConnection conn = new URL(url).openConnection();
      conn.setDoOutput(true);// 这里是关键,表示我们要向链接里注入的参数
      OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());// 获得连接输出流
      out.write(parameters);
      out.flush();
      out.close();
      // 到这里已经完成了,开始打印返回的HTML代码
      BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
      String line = null;
      while ((line = reader.readLine()) != null)
      {
        System.out.println(line);
      }
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }
  /**
   * 获取AccessToken
   * @param code 在授权页面返回的Code
   */
  public static void getAccessToken(String code)
  {
    String url="https://api.weibo.com/oauth2/access_token";
    String parameters="client_id=" +clientId+"&client_secret=" +clientSecret+
      "&grant_type=authorization_code" +"&redirect_uri=" +redirectUri+"&code="+code;
    postUrl(url, parameters);
  }
  /**
   * 利用刚获取的AccessToken发布一条微博
   * @param text 要发布的微博内容
   * @param accessToken 刚获取的AccessToken
   */
  public static void updateStatus(String text,String accessToken)
  {
    String url="https://api.weibo.com/2/statuses/update.json";
    String parameters="status="+text+"&access_token="+accessToken;
    postUrl(url, parameters);
    System.out.println("发布微博成功!");
  }
  /**
   * 设置信任所有的http证书(正常情况下访问https打头的网站会出现证书不信任相关错误,所以必须在访问前调用此方法)
   * @throws Exception
   */
  private static void trustAllHttpsCertificates() throws Exception
  {
    javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
    trustAllCerts[0] = new X509TrustManager()
    {
      @Override
      public X509Certificate[] getAcceptedIssuers()
      {
        return null;
      }
      @Override
      public void checkServerTrusted(X509Certificate[] arg0, String arg1)
          throws CertificateException
      {}
      @Override
      public void checkClientTrusted(X509Certificate[] arg0, String arg1)
          throws CertificateException
      {}
    };
    javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");
    sc.init(null, trustAllCerts, null);
    javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
  }
}

访问授权页面:

授权成功:

发布微博成功:

控制台输出结果:

(0)

相关推荐

  • Java模拟新浪和腾讯自动登录并发送微博

    Java模拟新浪和腾讯自动登录并发送微博功能分享给大家,供大家参考,具体内容如下 1.准备工作 只是登录无需申请新浪和腾迅的开发者账号,如果需要发送微博功能,需要申请一个新浪和腾迅的开发者账号,并添加一个测试应用. 过程请参考官方帮助文档,申请地址:新浪:http://open.weibo.com    腾迅:http://dev.t.qq.com/ 我们需要的是App Key和App Secre及redirect_URI,源代码中已经包含了我申请的测试key,但由于限制直接用我的key你们的账

  • Java使用新浪微博API通过账号密码方式登陆微博的实例

    今天下了个新浪微博的API研究研究,目前实现了发布微博功能,包括带图片的微博.为了安全,新浪微博的API中并没有提供用微博帐号密码登录的功能,而是采用OAuth授权,用户通过浏览器访问新浪网站登录,登录成功后,浏览器再返回key和secret给程序. main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.an

  • java实现的新浪微博分享代码实例

    weibo.java 复制代码 代码如下: @Override         protected void onCreate(Bundle savedInstanceState) {                  super.onCreate(savedInstanceState);                  setContentView(R.layout.user_center);                  // 创建微博实例                 mWeibo

  • java实现新浪微博Oauth接口发送图片和文字的方法

    本文实例讲述了java实现新浪微博Oauth接口发送图片和文字的方法.分享给大家供大家参考.具体如下: 基于网上很多人利用新浪api开发新浪微博客户端的时候遇到无法发图片的问题,很多人卡在了这一布.现将代码呈上,希望能帮到一些朋友. /** * 发表带图片的微博 * @param token * @param tokenSecret * @param aFile * @param status * @param urlPath * @return */ public String uploadS

  • 编写调用新浪微博API的Java程序来发送微博

    首先,需要下载新浪微博的SDK,这里附上地址:http://vdisk.weibo.com/s/z7iFc2gCCwC1b 下载完了之后解压,然后打开myeclipse,新建项目,再把刚才解压出来的Import到项目中.如图所示: 接下来,到这个网址http://open.weibo.com/注册应用.有三种应用,选择站内应用,然后创建应用.把该填写的都填写上.确认就ok.需要注意的是有两点: 1,是注册完应用,会有App Key以及App Secret,这个接下来会用到. 2,到<我的应用>

  • Java使用新浪微博API开发微博应用的基本方法

    新浪微博API现在运用比较广泛,做一个完整的开发流程Demo 1.第一步注册,就不多说了,注册帐号以及成为开发者帐号,这步操作不会的话请你马上砸掉电脑拔掉网线回家种田. 2.第二步创建应用,开发者帐号创建好了,打开新浪微博开发平台: http://open.weibo.com    上面菜单栏点击最后一个 管理中心 如果是web的应用的话选择创建网站接入的应用,然后根据新浪微博的要求balabalabala自己去搞定   应用创建完毕.点击应用跳转页面,点击查看应用参数,可以看到应用的相关参数,

  • 新浪微博API开发简介之用户授权(PHP基础篇)

    现在玩微博的人越来越多了,而关于微博的第三方应用开发也越来越多,自己在偶然间开始接触了新浪微博API开发,新浪微博API开发的资源比较多,新浪微博提供了一个开发者的平台,网址是:http://open.weibo.com,它里面有很全面的新浪微博开发的资料,包括开发者的使用和介绍,各种语言的API函数介绍文档,SDK等多种资料. 自己在开发和学习的过程中,感觉虽然没有太大难度,但还是有一些问题是需要我们注意的,今天就我在开发和学习的过程中,简单的对利用PHP进行新浪微博API开发的内容进行一个整

  • Java高版本Api在Android中的使用方法详解

    目录 Android插件开启对新Api的支持 常用的需要兼容处理的类: 1. LocalDate日期处理 2. Stream集合流操作 AGP7编译的问题 总结 Android插件开启对新Api的支持 这一天小王导入了一个库,上线之后直接崩了一大片? 找到其中的问题: 什么鬼哦?安卓8.0一下无法使用? 这样上线8.0以下的手机全部闪退了. 查一下才知道需要开启插件启动对Java Api的支持 android { defaultConfig { multiDexEnabled true } co

  • Python使用新浪微博API发送微博的例子

    1.注册一个新浪应用,得到appkey和secret,以及token,将这些信息写入配置文件sina_weibo_config.ini,内容如下,仅举例: 复制代码 代码如下: [userinfo]CONSUMER_KEY=8888888888CONSUMER_SECRET=777777f3feab026050df37d711200000TOKEN=2a21b19910af7a4b1962ad6ef9999999TOKEN_SECRET=47e2fdb0b0ac983241b0caaf45555

  • Java微信公众平台开发(15) 微信JSSDK的使用

    在前面的文章中有介绍到我们在微信web开发过程中常常用到的 [微信JSSDK中Config配置] ,但是我们在真正的使用中我们不仅仅只是为了配置Config而已,而是要在我们的项目中真正去使用微信JS-SDK给我们带来便捷,那么这里我们就简述如何在微信web开发中使用必要的方法!微信的JS-SDk中为我们提供的方法很多,这里我有一个简单截图如下: 在上图的提供的所有口中我们可以按照接口实现的难易程度分成两个部分: 较易实现:基础接口.分享接口.设备信息接口.地理位置接口.界面操作接口.微信扫一扫

  • Java微信公众平台开发(1) 接入微信公众平台

    前面几篇文章一直都在说微信公众平台的开发准备工作,那么从这篇开始我们就将正式的进入JAVA微信公众平台开发的整个流程,那么这篇我们开始聊聊如何将我们的服务端和微信公众平台对接! (一)接入流程解析 在我们的开发过程中无论如何最好的参考工具当然是我们的官方文档了:http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html 通过上面我们可以看出其中接入微信公众平台开发,开发者需要按照如下步骤完成: 填写服务器配置 验证服务

  • Java微信公众平台开发(12) 微信用户信息的获取

    前面的文章有讲到微信的一系列开发文章,包括token获取.菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信用户的信息,在上一篇我们有说道微信用户和微信公众账号之间的联系可以通过Openid关联,所以在这里我们就采用openid去获取用户微信信息,并实现一个简单场景应用:当微信新用户关注我们的微信公众平台的时候我们自动回复一篇图文消息,然后在图文消息中标题为:[尊敬的:XXX,你好!],而且在图文消息中的图片就是用户的微信头像,如下图: 有关获取微信用户信息的文档我们可以参照:http:

  • Java微信公众号开发之通过微信公众号获取用户信息

    最近由于公司业务,就开始研究微信开发的流程,说实话,这东西刚开始看到时候和看天书的一样,总算,看了一天的文档,测试代码终于出来了. 1.首先需要到微信网站去设置一下,我是直接用的微信测试号. 接口配置信息必须要填写的,所以说必须能将自己的服务发布出去 到此微信配置完毕,接下来就是直接上代码了 2.获取用户信息的方式一共是两种,前提都是用户关注微信公众号,一种是静默获取(snsapi_base,这种方式只能获取openid),另一种是授权获取(snsapi_userinfo,可以获取用户的详细信息

随机推荐