网站调用新浪微博内容(用微博控制发光二极管的亮和灭(图))
优采云 发布时间: 2022-03-11 14:20网站调用新浪微博内容(用微博控制发光二极管的亮和灭(图))
最近想设计一个课程,用微博控制树莓派,用树莓派控制发光二极管的开关。主要设计分为两层。上层是使用Java调用新浪微博API监控微博。当我的微博回复时,它会自动读取评论内容,并根据评论的指令内容决定树莓派的控制动作。下层是用C语言调用操作系统底层接口实现树莓派的GPIO接口控制发光二极管的闪烁、通断。
由于网上教程已经很老了,而且最近微博界面也发生了很多变化,所以决定重新写一篇详细的博文。如果能帮到您,我将不胜荣幸。同时,也非常希望能与您交流。如果您有任何问题,请在评论中回复我。
本文将逐步讲解如何申请微博接口并用Java发布自己的微博。【首先你要有一个微博账号】
一、申请成为开发者
去这里申请。点击“我的应用”查看身份认证:未认证,你已经做了你需要做的,这里不再赘述。审稿速度很快,不到一天就通过了。
之后应该是这样的(哈哈,欢迎互粉):
二、创建一个应用
这里的互联网教程具有误导性。我遵循了那些教程,最终把我拖进了坑里。我已经爬出来了。我希望你不要再陷入其中。
如果要使用Java控制微博,创建应用时不能创建“站内应用”。您必须创建一个“移动应用程序”。注意这一点,否则将无法通过权限验证步骤。
“微连接”-“移动应用”-“立即访问”-“继续创建”
现在我们来到了填写信息的地方,可以自己写一个应用名称(以后改名字会很麻烦,请一次性填写),例如“手机控制”树莓派”,客户端选择“手机”,应用选择Android作为平台就好,不过没关系。然后“创造”。好了,现在我们进入了一个新的界面,我们只是用它来测试,所以没有必要审查,除非你想让你的应用程序上线。
三、重要信息设置和记录
这一步非常重要,直接关系到以后能否正确连接。
左侧面板:“应用信息”-“高级信息”
当您看到“OAuth2.0 授权设置”时,单击“编辑”。“授权回调页面:”和“取消授权回调页面:”非常重要,创建“站内应用程序”的人应该在这里哭泣,因为他们无法修改“授权回调页面:”。. .
那么如何改变呢?两者都改成: ,这是微博默认的,对我们的测试来说已经足够了。
如图所示:
然后点击“基本信息”,
如图所示:
记下:APP Key和App Secret,后面会有用。
四、下载微博Java SDK
过来
下载压缩包:weibo4j-oauth2-beta3.1.1.zip
五、将 SDK 导入 Eclipse
什么?您是否一直在使用文本编辑器编写 Java?好吧,听我的建议,写这些东西的时候我应该切换到Eclipse,否则我会筋疲力尽。
打开Eclipse,“File”-“Import”-“Existing Projects into Workspace under General”-“Select archive File”-选择刚才的SDK包-“Finish”。
导入现已完成。
六、修改配置信息
打开图中的config.properties文件,将“client_ID”和“client_SERCRET”后面的值分别改成你记下的“App Key”和“App Secret”。“redirect_URI”的值更改为
保存。
七、申请授权
如图所示:
编译并执行 OAuth4Code.java 文件。
您的浏览器将被自动调用以打开授权页面。如下所示:
点击“授权”。
转到下图:
不要急于关闭浏览器!请复制地址栏中code=后面的字符串。
回到 Eclipse,下面的控制台正在等待您的输入。Hitenterwhenit'sdone.[Enter]:
没错,就是他。粘贴您刚刚复制的字符串,然后按 Enter。
好吧,等待几秒钟让您的授权信息返回。
AccessToken [accessToken=xxxxxxxxxxxxxxxxxx, expireIn=157679999, refreshToken=,uid=xxxxxxxxx]
“access_token”后面的字符串和“uid”后面的数字很重要,记下来。
现在您可以关闭浏览器了。
这里提醒一下,如果应用程序最初是作为“站内应用程序”而不是“移动应用程序”创建的,那么这一步将不会成功,并且您将始终看到“错误:redirect_uri_mismatch”页面。
八:发微博
在微博SDK包中,可以看到examples下有很多程序。这些是示例,涵盖了 SDK 可以做的所有事情。您只需要通过引用来编写。
weibo4j.examples.timeline 包中的UpdateStatus.java 是一个微博示例。
我们在 src 中新建一个名为 myweibo 的包,然后在其下新建几个类。我在这里创建了几个。
我将演示如何发推文。
在myweibo下新建类SendWeibo.java
复制examples—weibo4j.examples.timeline—UpdateStatus.java示例程序中的整个main方法体。粘贴后,Eclipse会自动导入需要引用的包。
将 String access_token= 替换为您刚才的 access_token 的值。String statuses= 后跟你的微博正文。
改了之后是:
然后直接运行Java代码,只要不报错,就成功了。看看你的微博。
注意:如果你不知道函数(我还是习惯称它为函数,而不是方法)是做什么的,并且不知道它的参数的含义,请将光标移动到函数上。
SDK中提供的各种功能都非常好用,比如获取微博、获取评论、获取评论ID、回复评论、获取地理位置、获取照片、发送照片、获取粉丝关系、获取微博等等。让我们自己尝试一下。
九:发布程序:
如果您要在其他地方运行程序,例如 Raspberry Pi Linux 或虚拟机中的 Linux,则需要注意一些事项。
我们首先发布程序:
我们右键点击weibo4j-oauth2项目,选择“导出”,然后如图:
下一步,
哪个程序是入口,Launch配置选择哪个,这里我们执行发送微博的程序:SendWeibo。
选择路径,在下方选择图书馆移交的第二个保险点。然后Finish,可能会弹出一个警告,不用担心,点击OK。
然后生成。然后双击jar包,程序一闪而过,留下一个weibo.log文件,就是日志。如果出现错误,您可以查看日志以查找原因。现在该程序已执行,它会发布另一条推文。
您可以将此文件拖到虚拟机的 Linux 中。我们已经看到 Java 如何在任何地方运行。结果运行java -jar 1.jar后报错。这是怎么回事?
仔细看看错误信息,它说.UnknownHostException,然后看看错误信息是不是说InetAddress.getLocalHost(),这就是原因。
解决方案:
首先,ifconfig 会查看您的 IP。这个不管是局域网IP还是外网IP。它只需要您看到的本地 IP。
修改主机文件 /etc/hosts 并添加一行,
你的ip 你的主机名 # KD.localdomain是我的主机名
至于如何查看主机名,应该在报错信息中,比如localhost.localdomain。KD.localdomain 这是我自己的改变。您还可以检查 /etc/hosts 以确认您的主机名。
这样修改后,再次尝试运行1.jar,应该可以成功。我不会拍照。运行虚拟机很麻烦。
PS:发微博后试试,别乱来,这个效果和刷屏差不多,会被打。
调用 API 有时容易出现问题。欢迎评论和交流。我在学习Linux内核的底层,对Java不是很精通,是个半助手。也欢迎大家就Linux问题与我交流。