网站调用新浪微博内容(新浪微博API运用比较广泛,做一个完整的开发流程 )

优采云 发布时间: 2022-03-20 04:22

  网站调用新浪微博内容(新浪微博API运用比较广泛,做一个完整的开发流程

)

  新浪微博API现已广泛使用,并制作了完整的开发流程Demo

  1、注册第一步,话不多说,注册账号成为开发者账号,如果这一步做不到,请立即砸电脑拔网线回家种田。

  2、第二步是创建一个应用程序。开发者账号创建后,打开新浪微博开发平台:

  点击上方菜单栏中的最后一个管理中心

  

  如果是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授权应用信息>高级信息>OAuth2.0授权设置的回调URL下面的授权回调页面是你自己填写的URL。它指向您自己的服务器。当然,它还在开发阶段,我们可以使用任何 URL,只要它能让我们了解 OAuth 授权过程。这里我们也进入了取消授权回调页面。注意这里的URL字符串必须一致。

  5、第五步,获取AccessToken。一般情况下,获取AccessToken需要通过OAuth2.0进行认证,但是为了简单起见,我介绍一个简单的方法。OAuth 后面会讲到2.0

  或者选择顶部菜单栏 Document > API > API Test Tool

  选择创建的应用程序,然后单击获取 AccessToken。下面的文本框就是我们想要的AccessToken。

  

  6、第六步,创建接口实例

  进入微博API,找到已有权限的接口。

  刚刚找到用户发的一条微博status/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 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线