网站调用新浪微博内容(用微博控制发光二极管的亮和灭(图))

优采云 发布时间: 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问题与我交流。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线