微博开放平台api使用[通俗易懂]

微博开放平台api使用[通俗易懂]前言:微博开放平台提供了微博数据的api接口,不仅可以直接通过api调用微博服务发布微博查询微博,更重要的是,可以在自己的网站上获得新浪微博api的授权,调用微博的某些内容,就好像我们再网站中看到好文

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言:微博开放平台提供了微博数据的api接口,不仅可以直接通过api调用微博服务发布微博查询微博,更重要的是,可以在自己的网站上获得新浪微博api的授权,调用微博的某些内容,就好像我们再网站中看到好文章要分享到微博或者其他社交网站中一样,非常方便。

下面就来探秘一番。
1.注册开发者并获取app key 和 app secret
  百度很容易找到微博开放平台的入口,登录自己的微博账号,点击账号头像,会提示编辑开发者信息。
  
微博开放平台api使用[通俗易懂]
  可以看到如下的页面,只需要按照提示填写,其中紧急联系人可以填自己,网站无所谓,填百度也行。
  
微博开放平台api使用[通俗易懂]
提交之后,你需要在我的应用下实名认证,上传图片时请耐心等待,有点慢而且没有上传进度。上传之后点击返回,可以跳转到新页面:
微博开放平台api使用[通俗易懂]

 按照需要选择,然后创建自己的应用。至于这里面各种应用名词是什么意思我也不是很清楚,用着用着就熟了。我选择的是其他应用
微博开放平台api使用[通俗易懂]

 
微博开放平台api使用[通俗易懂]
 创建之后,会收到邮件,含有app key 和 app secret 。这是获取授权的关键。
2.获取token
  首页 
http://open.weibo.com/ 点击api接口,会跳转到api接口说明文档页面,你会发现api有很多功能,包括创建微博,删除微博,关注/取消关注等非常多的接口,但是每个接口都需要token才能访问。token从何而来?
首先你需要获取一个code码,其次你需要有个调用接口的网址(因为我申请的是网页应用)。
设置关联的网址:
微博开放平台api使用[通俗易懂]
点击你的应用名,然后在左边的菜单中找到高级信息,然后就可以编辑了。
微博开放平台api使用[通俗易懂]
 
点击api接口下
微博开放平台api使用[通俗易懂],进入授权接口查看用法
微博开放平台api使用[通俗易懂]

按照实例,你需要发一个get请求包含client_id和redirect_uri。可以直接拼接。
https://api.weibo.com/oauth2/authorize?client_id=123050457758183&redirect_uri=http://www.example.com/response&response_type=code

其中,client_id是你申请的app key,redirect_uri是自己要回调接口的地址,api会原样返回。可以直接在浏览器输入url,如下图所示:
微博开放平台api使用[通俗易懂]
这个页面是否有些熟悉呢?授权之后,网页会跳回redirect_uri页面,并且在url后面拼上code。于是code就有了
接下来获取授权token,授权接口第二个:
页面上有详细的用法,发送http post请求,我用java的http-client4.5来做的,事实上其他方式也行。
微博开放平台api使用[通俗易懂]

代码写的比较烂,但是多少是可用的。5个必备参数值。我们已经获取了最后两个,前面两个在邮件中。代码就不贴出来了。看管自己敲一敲有利于熟悉用法,以后少不了发各种请求。
至此,我们成功授权,返回值里有需要的token值,如果返回error,请查看错误提示,或者百度错误信息。
此后只需要带着token,就可以请求到各种接口,虽然有次数限制,不过如果正常使用应该足够了。
 
后记:
1.本来我是想做一些类似于爬虫的功能,想在微博开放接口中,拿点数据,不过纵览api,多数是基于网页应用的微博分享的功能,
  比如获取自己的微博,获取粉丝,发微博,关注等,不是自己需要的。
  
微博开放平台api使用[通俗易懂]
 2.前面提了,微博开放api主要是用于第三方网站或者app接入微博,用微博登陆或者通过api做微博分享,所以有这方面需求的完全可以深入研究一下api接口。
 3.api接口中,get请求都可以直接拼接字符串获取,但是对于刚刚请求授权的get请求来说,它是需要用户的账号同意授权给应用,所以必须要登录用户账号,如果浏览器保有微博登陆后的cookie,那么浏览器能自动登录从而拿到目标code,如果没有就会提示登录
    
微博开放平台api使用[通俗易懂]

    因而这个请求适合在浏览器上做,因为用代码发请求还要模拟登录,或者使用登录后的cookie,非常麻烦。不过api中其他get请求不会有这个问题,直接带token即可。模拟登录可以使用selenium的webdriver 拿到 cookie,其他模拟登录的方式普遍非常麻烦。

    当然,如果你内嵌到网站上,那登录就是用户的事了。

 4.以发送微博 为例:
@Test
    public void test2() throws IOException {
        CloseableHttpClient client = HttpClients.createDefault();
        CloseableHttpResponse response = null;
        RequestConfig config =
                RequestConfig.custom().setConnectTimeout(10000)
                        .setSocketTimeout(10000).build();
        HttpPost post = new HttpPost("https://api.weibo.com/2/statuses/update.json");
        post.setConfig(config);
        List<NameValuePair> pairs = new ArrayList<>();
        BasicNameValuePair p1 = new BasicNameValuePair("access_token","");
        String content = "本条微博通过微博开放接口发送";
        BasicNameValuePair p2 = new BasicNameValuePair("status",
                content);
        BasicNameValuePair p3 = new BasicNameValuePair("visible","0");
        pairs.add(p1);
        pairs.add(p2);
        pairs.add(p3);
        post.setEntity(new UrlEncodedFormEntity(pairs,"utf-8"));
        response = client.execute(post);
        HttpEntity entities = response.getEntity();
        System.out.println(EntityUtils.toString(entities,"UTF-8"));
    }

微博开放平台api使用[通俗易懂]

 5.如果将开放api嵌入自己的网站中,大概做法是:在分享微博按钮(第三方登陆按钮)上,发送微博授权认证,用户在网页上点击授权后,后台就获得了code,以及能根据code获取token。此后如果需要提取微博的用户名,也就可以直接在后台发请求。如果是分享到微博,也可以通过api来做到。
 
如果以后实践中用到了这些功能,再做记录,本文到此为止。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166859.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • TYVJ P1032 零用钱 Label:贪心

    TYVJ P1032 零用钱 Label:贪心

    2021年9月17日
    64
  • “光猫”调制解调器 和 路由器的区别 傻傻分不清

    “光猫”调制解调器 和 路由器的区别 傻傻分不清一、“猫”指调制解调器,所谓调制,就是把数字信号转换成电话线上传输的模拟信号;解调,即把模拟信号转换成数字信号。合称调制解调器。调制解调器的英文是“Modem”,读音与“猫”相似,因此被称作“猫”。简单来说,“猫”的主要作用是上连宽带线路,下连电脑,实现电脑与宽带的连接,这样电脑才能够正常上网。路由器,又称网关设备,英文名是“Router”,是连接因特网中各局域网、广域网的设备,它会根据信…

    2025年7月12日
    5
  • 你想要了解的黑客入门知识在这里

    你想要了解的黑客入门知识在这里开篇特此声明,萌新博主所写这篇文章的初衷并不是想让大家成为一名黑客,去做出一些违反国家法律规定的违规操作,只是单纯的想介绍一下成为黑客所要了解的知识以及一些必要的黑客术语,从读者的角度去满足一些计算机爱好者的好奇心。博主心底善良,为人正直,遵守国家法律规定。如有违反,望各位读者监督,另外图谋不轨者,严禁转载!!————————————————分割线———————————————————————…

    2022年5月5日
    35
  • idea激活码2021破解方法[通俗易懂]

    idea激活码2021破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    235
  • iOS小技能:解决图片压缩之后模糊的问题「建议收藏」

    iOS小技能:解决图片压缩之后模糊的问题「建议收藏」前言图片的压缩其实是俩概念,1、是“压”文件体积变小,但是像素数不变,长宽尺寸不变,那么质量可能下降,2、是“缩”文件的尺寸变小,也就是像素数减少。长宽尺寸变小,文件体积同样会减小。这个UIImageJPEGRepresentation(image,0.0),是1的功能。这个[sourceImagedrawIn…

    2022年6月18日
    69
  • java四舍五入成整数的方法

    java四舍五入成整数的方法    在java的Math类中,提供了许许多多的和数学计算有关的方法,其中也包括取整的,关于取整的有向下取整的floor(doubled)返回值double,rint(doubled),round(doubled)和round(floatf)。   但是,其中和四舍五入相近的方法只有rint和round方法,如果单独使用这两个方法的话,所得到的结果和我们预期的结果不一样,    比如r…

    2022年5月21日
    226

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号