微博开放平台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)
上一篇 2022年8月1日 下午10:00
下一篇 2022年8月1日 下午10:16


相关推荐

  • 伪静态php配置,PHP开启伪静态配置

    伪静态php配置,PHP开启伪静态配置1 检测 Apache 是否开启 mod rewrite 功能可以通过 php 提供的 phpinfo 函数查看环境配置 找到 LoadedModule 其中列出了所有 apache2handl 已经开启的模块 如果里面包括 mod rewrite 则已经支持 不再需要继续设置 如果没有开启 mod rewrite 则打开目录 apache 目录下的 apache conf 找到 httpd

    2026年3月18日
    2
  • linux中whereis命令的用法,Linux中的Whereis命令,教你如何使用whereis命令及注意事项…

    linux中whereis命令的用法,Linux中的Whereis命令,教你如何使用whereis命令及注意事项…本文教你使用 Linux 操作系统中的 Whereis 命令 包括注意事项 whereis 是一个命令行实用程序 允许你查找给定命令的二进制文件 源文件和手动页面文件的位置 如何使用 whereis 命令及注意事项 whereis 命令的语法如下 whereis OPTIONS FILE NAME 在没有任何选项的情况下使用时 搜索指定为参数的命令的二进制文件 源文件和手动文件 默认情况下 whereis 在

    2025年7月29日
    9
  • madvr怎么设置hdr_文字识别软件

    madvr怎么设置hdr_文字识别软件PotPlayer播放HDR视频截图PotPlayer播放HDR视频截图Windows10内置视频播放器播放HDR视频Windows10内置视频播放器播放HDR视频从去年开始,支持HDR的电视机已经卖得铺天盖地,支持4KUHDHDR的片源也变得丰富起来,动辄50GB的视频资源让广大10TB级松鼠病晚期患者们兴奋地表示家里屯的硬盘和百兆宽带终于有了用武…

    2025年11月16日
    3
  • Openclaw中文版Molili Skill技能实战:定时获取热点资讯教程

    Openclaw中文版Molili Skill技能实战:定时获取热点资讯教程

    2026年3月13日
    2
  • ubuntu安装 gcc 5.4.0

    ubuntu安装 gcc 5.4.0ubuntu安装gcc5.4版本Ubuntu高版本如何安装低版本GCC更改默认版本

    2022年7月24日
    23
  • win10电脑一插u盘就重启_u盘启动盘复制到另一个u盘

    win10电脑一插u盘就重启_u盘启动盘复制到另一个u盘不知道大家有没有遇到过这样的情况,就是当你用U盘复制东西的时候,电脑莫名其妙自动重启,可是只要讲U盘拔下来就没事了,而用杀毒软件杀毒也没有查出任何病毒,重新安装了一次系统也是一样的无济于事,这究竟是什么问题?带着这个问题往下看,U盘量产网将为你解答。这个问题几率不大,但首先要百分之百确认U盘里没有病毒或者木马,杀毒软件可能检查不出来,所以建议您将U盘格式化,格式化时注意要选择FAT而不是FAT32…

    2025年10月9日
    4

发表回复

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

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