使用新浪微博开放平台api同步微博内容至自己网站(新浪微博的API弄,也就没弄它。)

优采云 发布时间: 2022-03-07 21:00

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博的API弄,也就没弄它。)

  一年前,我使用清华的数据集进行数据挖掘。看了新浪微博的API,不知道怎么做,所以没做。今年没想到需要再次采集数据。不能用清华。只需要自己弄清楚。

  其实最标准简洁的描述就在这里:去新浪微博开放平台,创建站内应用,获取App Key和App Secret后,去下载Java SDK,按照“如何使用”在本页。 "按照描述的步骤进行操作。

  但我不明白。

  我在网上参考了很多文章,主要是这一篇:博主的文笔也不错。我又按照这一步,基本成功了,但还是走了一些弯路。在这里我把我的亲身经历和心得贴出来供大家阅读。但同时也有不明白的地方,请多多指教。

  首先要下载新浪微博SDK。我用的是java,所以我下载了java版本的SDK。地址在这里:

  下载、解压并倒入MyEclipse项目。我直接用MyEclipse,不知道能不能用Eclipse,好像没什么区别。

  本项目中有各种API调用示例,只要有accessToken即可。但是现在关键是没有accessToken。以下是获取accessToken的方法。

  下一步是创建一个新浪微博应用程序。应用创建后才能获取accessToken。

  创建一个新的应用程序,创建一个“现场应用程序”。我第一次弄错了,创建了一个没有成功获取accessToken的移动应用程序。站内应用在网页顶部,将鼠标移动到“微连接”二字,下方弹出的四个应用,选择“站内应用”,跳转到站内应用,单击以创建应用程序。

  先填写应用名称,然后“填写所有内容”。之前的博客是这样写的。我知道要填什么,但不知道怎么填。

  主要混淆在这里:如何写“站点地址”,以及如何写“应用程序实际地址”。事实上,给站点地址添加一个后缀就足够了。有的人在“申请实际地址”里填的是自己网页的地址,我填。这似乎无关紧要。但是如果填写的地址是一个不存在的网页,我不知道会发生什么。总之,我用的是百度的O。

  创建后,现在可能处于测试阶段,此时应该可以尝试获取accessToken。当然,我是在完成后获得了申请信息。如果我没有完整地写它,我认为它不会影响它。但不能保证。

  注册应用后会有一个App Key和一个App Secret,记下来。

  然后,打开我们刚刚导入 MyEclipse 的项目。

  首先,你需要在项目中设置你的应用的App Key和App Secret。具体方法是打开项目中的src/config.properties,将之前记录的App Key和App Secret填入client_ID和client_SECRET,将之前填写的“应用实际地址”填入redrect_URI,保存。

  然后,点击examples/weibo4j.examples/oauth2/OAuth4Code.java,看到main方法中应该有这样的代码

  BareBonesBrowserLaunch.openURL(oauth.authorize("code",args[0],args[1]));

  System.out.println(oauth.authorize("code",args[0],args[1]));

  其实上面第二句可以忽略,只是输出语句而已。

  将上面两句中的args[0]和args[1]都改成“”(即空字符串)。

  运行,会打开一个界面,需要输入你创建应用时的微博账号密码进行授权。

  然后会跳转到之前设置的“应用实际地址”,和我一样会跳转到百度首页。

  此时,观察页面的URL,有一个code=XXX,复制code后面的东西。切换回MyEclipse,它输出了一句,最后是XXX[Enter]: 然后你把代码后面的字符串粘贴到控制台,回车,稍等片刻,会出来很多东西,最后一行会有一个图例 AccessToken 。

  这件事一定要写下来。

  那我就发微博了。详情请参考开头提到的博客。

  一般的方法是,在weibo4j.examples.timeline包下,UpdateStatus类下,看main方法的前两行,修改代码(或者添加命令行参数,随意),赋值access_token 到你刚刚记下的那个AccessToken,状态分配给你要发的微博,然后运行。

  用浏览器打开微博首页,你会发现一条新的微博帖子。

  与其他API函数类似,只需将access_token替换为之前获取的AccessToken字符串即可。

  如果要使用其他账号发布,需要反复执行OAuth4Code.java,然后填写另一个ID的账号密码进行授权,然后在密码后面输入一串信息,再获取另一个AccessToken。但是,在测试阶段,您可能需要先在我的应用中点击“应用信息”、“测试信息”,并在其中添加相应的账号。添加后,授权才会生效。

  注意:我没有亲自测试最后一段。只是猜测。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线