
使用新浪微博开放平台api同步微博内容至自己网站
使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步到第三方服务中的那些方法)
网站优化 • 优采云 发表了文章 • 0 个评论 • 94 次浏览 • 2021-09-07 06:07
使用新浪微博开放平台api同步微博内容至自己网站。通过这个工具,你可以直接在新浪微博的api服务端获取到所有同步后的内容。
除了同步微博之外,你还要有新浪微博的认证,你的认证是否实名看你是否是微博的重度用户。然后就可以去开通微博,开通了就可以绑定你的银行卡了。把你的微博绑定到你银行卡里就可以转账,发红包了。注册新浪微博也很简单的,认证账号,绑定银行卡即可。简单的方法。
通过认证企业和普通个人账号绑定账号,
你是否注册了微博?如果注册了,将有第三方接口帮你进行同步;否则要买一个微博才行。
买一个买账号的钱都够买一个营销通的了
新浪微博绑定银行卡
绑定好银行卡上的网址(需要验证)然后你进入的新浪微博就能看到你买过的账号发送过的内容,
新浪微博主页—个人资料—实名认证—开通新浪邮箱在邮箱的主页上点开通电子邮箱输入你的手机号码实名认证成功后账号就同步到你的微博了
参考链接:微博账号同步到第三方服务中的那些方法!
首先,你必须是已经成为拥有新浪微博帐号,然后就是拥有新浪的认证!很多人不懂微博认证,以为直接买别人微博的用户,就可以认证自己的微博了,这是相当于直接黑户注册新浪的微博。下面就为大家整理一下微博认证需要的条件,需要的材料,具体如下:第一,同一身份证下只能注册一个新浪微博帐号。新浪微博认证需要户口本和身份证。
户口本里的自己是唯一用户,身份证上的自己只能注册一个新浪微博账号。第二,同一身份证名下只能注册一个新浪微博帐号。注册一个账号需要20元人民币,每个用户最多支持3个认证。第三,同一身份证名下只能注册一个新浪微博帐号。新浪微博认证认证需要支付邮费,支付方式为银行卡。每个认证需要5元邮费。第四,微博认证需要使用阿里旺旺认证,会收取1元费用。
第五,同一身份证注册多个微博的话,重复注册会收取20元人民币。第六,获得新浪微博账号:买一个新浪微博账号,然后绑定你的银行卡即可!第七,如果你注册不止一个微博,要绑定同一个银行卡。其他步骤相同,只是注册时间不同而已!。 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步到第三方服务中的那些方法)
使用新浪微博开放平台api同步微博内容至自己网站。通过这个工具,你可以直接在新浪微博的api服务端获取到所有同步后的内容。
除了同步微博之外,你还要有新浪微博的认证,你的认证是否实名看你是否是微博的重度用户。然后就可以去开通微博,开通了就可以绑定你的银行卡了。把你的微博绑定到你银行卡里就可以转账,发红包了。注册新浪微博也很简单的,认证账号,绑定银行卡即可。简单的方法。
通过认证企业和普通个人账号绑定账号,
你是否注册了微博?如果注册了,将有第三方接口帮你进行同步;否则要买一个微博才行。
买一个买账号的钱都够买一个营销通的了
新浪微博绑定银行卡
绑定好银行卡上的网址(需要验证)然后你进入的新浪微博就能看到你买过的账号发送过的内容,
新浪微博主页—个人资料—实名认证—开通新浪邮箱在邮箱的主页上点开通电子邮箱输入你的手机号码实名认证成功后账号就同步到你的微博了
参考链接:微博账号同步到第三方服务中的那些方法!
首先,你必须是已经成为拥有新浪微博帐号,然后就是拥有新浪的认证!很多人不懂微博认证,以为直接买别人微博的用户,就可以认证自己的微博了,这是相当于直接黑户注册新浪的微博。下面就为大家整理一下微博认证需要的条件,需要的材料,具体如下:第一,同一身份证下只能注册一个新浪微博帐号。新浪微博认证需要户口本和身份证。
户口本里的自己是唯一用户,身份证上的自己只能注册一个新浪微博账号。第二,同一身份证名下只能注册一个新浪微博帐号。注册一个账号需要20元人民币,每个用户最多支持3个认证。第三,同一身份证名下只能注册一个新浪微博帐号。新浪微博认证认证需要支付邮费,支付方式为银行卡。每个认证需要5元邮费。第四,微博认证需要使用阿里旺旺认证,会收取1元费用。
第五,同一身份证注册多个微博的话,重复注册会收取20元人民币。第六,获得新浪微博账号:买一个新浪微博账号,然后绑定你的银行卡即可!第七,如果你注册不止一个微博,要绑定同一个银行卡。其他步骤相同,只是注册时间不同而已!。
使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步微博同步内容至自己网站)
网站优化 • 优采云 发表了文章 • 0 个评论 • 69 次浏览 • 2021-09-07 03:04
使用新浪微博开放平台api同步微博内容至自己网站,有接口可以自己实现,或者借助第三方工具。比如现在很火的ricequant提供基于webgl的数据可视化接口。这个接口每天是免费的,里面可以上传网页内容到ricequant,或者链接到js地址到已有的网页。我自己的站试了一下,效果还是不错。楼主可以试试。
现在的新浪微博开放平台:/,可以实现:同步新浪微博内容到博客等私人网站等;安卓微博app实时定制发布;一键转发功能,不用再管网站了。
新浪的api私信小弟。最近有需求。谢谢,不用谢。
你可以直接用米饭云的微博数据接口,是提供的,免费的;做一个模板就可以随时接入新浪官方微博api做营销推广,只要搭建了个人博客,就可以嵌入米饭云的api,公众号也行。api接口调用方法,你可以自己查文档找下,比如这样:数据回传的话,也是一样你不用担心,我们有专门的工作人员帮你解决,我们的技术人员都是在香港用本人的博客和注册号做登记的。
原来wi-fi是可以直接传文件的,可是现在的手机云服务基本上都已经实现了wi-fi传文件,
是的哦,可以实现微博内容转发,@微博网站。
现在可以这样做,你可以通过api接口把内容的链接直接转发到你的网站.比如你的微博账号/网站地址链接,你的网站后台把数据连接转发到api.也可以授权给这个api转发给其他网站,也可以直接实现,比如1.把你的链接给你的网站的域名2.转发到新浪博客,新浪博客的api也会转发.3.分享给其他人 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步微博同步内容至自己网站)
使用新浪微博开放平台api同步微博内容至自己网站,有接口可以自己实现,或者借助第三方工具。比如现在很火的ricequant提供基于webgl的数据可视化接口。这个接口每天是免费的,里面可以上传网页内容到ricequant,或者链接到js地址到已有的网页。我自己的站试了一下,效果还是不错。楼主可以试试。
现在的新浪微博开放平台:/,可以实现:同步新浪微博内容到博客等私人网站等;安卓微博app实时定制发布;一键转发功能,不用再管网站了。
新浪的api私信小弟。最近有需求。谢谢,不用谢。
你可以直接用米饭云的微博数据接口,是提供的,免费的;做一个模板就可以随时接入新浪官方微博api做营销推广,只要搭建了个人博客,就可以嵌入米饭云的api,公众号也行。api接口调用方法,你可以自己查文档找下,比如这样:数据回传的话,也是一样你不用担心,我们有专门的工作人员帮你解决,我们的技术人员都是在香港用本人的博客和注册号做登记的。
原来wi-fi是可以直接传文件的,可是现在的手机云服务基本上都已经实现了wi-fi传文件,
是的哦,可以实现微博内容转发,@微博网站。
现在可以这样做,你可以通过api接口把内容的链接直接转发到你的网站.比如你的微博账号/网站地址链接,你的网站后台把数据连接转发到api.也可以授权给这个api转发给其他网站,也可以直接实现,比如1.把你的链接给你的网站的域名2.转发到新浪博客,新浪博客的api也会转发.3.分享给其他人
使用新浪微博开放平台api同步微博内容至自己网站( 新浪微博API关闭:想用.js是我之前没用过的)
网站优化 • 优采云 发表了文章 • 0 个评论 • 83 次浏览 • 2021-09-06 04:10
新浪微博API关闭:想用.js是我之前没用过的)
我一直在使用新浪微博API进行数据同步。今年年初,大约是1月8日。微博 API 突然不可用,原因不明。接口调用不断出现 403 错误。私信“微博开发平台”联系一直是机器回复。
所以我猜新浪微博关闭了它的API。我猜可能是微博太难盈利了,所以就跟腾讯学了,把数据都关了,赚了很多钱。
但是,我在微博上发布了很多数据,但是微博至今还没有提供数据备份,所以我还需要寻找其他方式来同步和备份数据,所以我想使用微博来转换RSS的方式用于数据导出。
11年前做过一个PHP微博转换项目,但是时间太久,里面的数据结构完全变了,不能用了,于是上网搜了一下。看看有没有现成的项目,结果发现github上有个weibo-rss的项目可以用,但是部署用的是Node.js,之前没用过。
我在国外买的云服务器使用的是LNMP(Linux-Nginx-MySQL-PHP)环境。 web服务器是Nginx,体积小,稳定,占用资源少。一个低调的服务器可以做一个动态的网站。我尝试将此 Node.js 项目部署到此服务器。
服务器没有安装Node.js,需要先安装环境。面板中有一个“PM2管理器”,就是一个node.js管理器,内置了node.js + npm + nvm + pm2,可以一键安装。
安装环境后,按照项目说明开始手动部署。
git 克隆
cd weibo-rss
npm 安装
pm2 启动 bin/www
按照之前部署php的思路,部署到wwwroot下的一个目录下。从网页访问后,页面可以出来,但是RSS提示“获取数据失败”。
后来咨询了项目作者,发现项目部署到了3000端口,而不是Nginx的80和443端口。我用3000端口的地址访问,可以正常获取数据。
当然,我还是希望最终能在Nginx下使用。在 Nginx 中设置反向代理并将目录映射到端口 3000 以在端口 80 和 443 上访问此 Node.js 项目。
() () 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(
新浪微博API关闭:想用.js是我之前没用过的)

我一直在使用新浪微博API进行数据同步。今年年初,大约是1月8日。微博 API 突然不可用,原因不明。接口调用不断出现 403 错误。私信“微博开发平台”联系一直是机器回复。
所以我猜新浪微博关闭了它的API。我猜可能是微博太难盈利了,所以就跟腾讯学了,把数据都关了,赚了很多钱。
但是,我在微博上发布了很多数据,但是微博至今还没有提供数据备份,所以我还需要寻找其他方式来同步和备份数据,所以我想使用微博来转换RSS的方式用于数据导出。
11年前做过一个PHP微博转换项目,但是时间太久,里面的数据结构完全变了,不能用了,于是上网搜了一下。看看有没有现成的项目,结果发现github上有个weibo-rss的项目可以用,但是部署用的是Node.js,之前没用过。
我在国外买的云服务器使用的是LNMP(Linux-Nginx-MySQL-PHP)环境。 web服务器是Nginx,体积小,稳定,占用资源少。一个低调的服务器可以做一个动态的网站。我尝试将此 Node.js 项目部署到此服务器。
服务器没有安装Node.js,需要先安装环境。面板中有一个“PM2管理器”,就是一个node.js管理器,内置了node.js + npm + nvm + pm2,可以一键安装。
安装环境后,按照项目说明开始手动部署。
git 克隆
cd weibo-rss
npm 安装
pm2 启动 bin/www
按照之前部署php的思路,部署到wwwroot下的一个目录下。从网页访问后,页面可以出来,但是RSS提示“获取数据失败”。
后来咨询了项目作者,发现项目部署到了3000端口,而不是Nginx的80和443端口。我用3000端口的地址访问,可以正常获取数据。
当然,我还是希望最终能在Nginx下使用。在 Nginx 中设置反向代理并将目录映射到端口 3000 以在端口 80 和 443 上访问此 Node.js 项目。

() ()
使用新浪微博开放平台api同步微博内容至自己网站(微博开放平台注册开发者并获取app和appsecret百度很容易)
网站优化 • 优采云 发表了文章 • 0 个评论 • 95 次浏览 • 2021-09-05 11:23
前言:微博开放平台提供了微博数据的api接口。不仅可以直接使用api调用微博服务发布微博和查询微博,更重要的是你可以在你的网站上获得新浪微博@博客api的授权可以调用微博的一些内容,就好像我们在网站@看到好的文章并分享到微博或其他社交网络网站@中,非常方便。
让我们探索下面的秘密。
1.注册开发者,获取应用秘钥和应用秘钥
百度很容易找到微博开放平台的入口,登录微博账号,点击账号头像,会提示编辑开发者信息。
可以看到如下页面,按照提示填写即可,这里紧急联系人可以自己填写,网站@无所谓,自己填写百度即可。
提交后,您需要在我的应用中验证您的真实姓名。上传图片时请耐心等待。有点慢,没有上传进度。上传后点击返回跳转到新页面:
根据需要选择,然后创建您自己的应用程序。至于各个应用术语的含义,我不是很清楚。我选择了另一个应用程序
创建后,您将收到一封收录应用密钥和应用机密的电子邮件。这是获得授权的关键。
2.获取令牌
点击首页的api接口,会跳转到api接口描述文档页面。你会发现这个api有很多功能,包括创建微博、删除微博、关注/取消关注等很多接口,但是每个接口都有Token需要访问。令牌从何而来?
首先你需要得到一个code code,其次你需要有一个URL来调用接口(因为我申请的是web应用)。
设置关联网址:
点击您的应用名称,然后在左侧菜单中找到高级信息,然后您可以对其进行编辑。
在api界面下点击
,进入授权界面查看使用情况
根据例子,你需要发送一个收录client_id和redirect_uri的get请求。可以直接拼接。
https://api.weibo.com/oauth2/a ... Dcode
其中client_id是你申请的app key,redirect_uri是你要回调的接口地址,api会原样返回。可以直接在浏览器中输入url,如下图:
这个页面熟悉吗?授权后网页会跳转回redirect_uri页面,url后面会写code。所以代码就在那里
接下来获取授权令牌,第二个授权接口:
页面上有详细的用法。发送http post请求,我是用java http-client4.5来做的,其实其他方法也可以。
代码写得不好,但或多或少有用。 5 个必需的参数值。我们已经拿到了最后两个,前两个在邮件里。代码将不会发布。打理好自己的打字,熟悉用法,以后难免会提出各种要求。
至此,我们已经授权成功,返回值中收录需要的token值。如果返回错误,请查看错误信息或百度错误信息。
从现在开始,你只需要带上token来请求各种接口。虽然有次数限制,但正常使用应该足够了。
后记:
1. 本来想做一些爬虫类的功能。我想在微博开放界面获取一些数据。不过从API来看,大部分都是基于web应用的微博分享功能。
例如,拥有自己的微博、获得粉丝、发微博、关注等都不是您所需要的。
前面提到的2.,微博开放api主要用于第三方网站@或者app访问微博,用微博登录或者通过api分享微博,所以有这个需求的完全可以拿仔细看看api接口。
在3.api接口中,所有get请求都可以直接拼接字符串获取,但是对于刚请求授权的get请求,需要用户账号同意向应用授权,所以必须登录到用户账号,如果浏览器保留了微博登录的cookie,那么浏览器可以自动登录获取目标码,如果没有,会提示登录
所以这个请求适合在浏览器上做,因为发送带有代码的请求来模拟登录,或者登录后使用cookie是很麻烦的。但是api中的其他get请求不会有这个问题,直接带上token就可以了。模拟登录可以使用selenium的webdriver来获取cookies。其他模拟登录的方法一般都很麻烦。
当然,如果你嵌入网站@,那么登录是用户的事。
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 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"));
}
5.如果你在网站@中嵌入了open api,一般做法是:在分享微博按钮(第三方登录按钮)上,发送微博授权认证,用户在网页点击授权后,后台获取code,根据code获取token。之后,如果您需要提取微博的用户名,您可以直接在后台发送请求。如果分享到微博,也可以通过api实现。
如果以后在实践中用到这些功能,请记下。本文到此结束。
来自 Wiz (Wiz) 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(微博开放平台注册开发者并获取app和appsecret百度很容易)
前言:微博开放平台提供了微博数据的api接口。不仅可以直接使用api调用微博服务发布微博和查询微博,更重要的是你可以在你的网站上获得新浪微博@博客api的授权可以调用微博的一些内容,就好像我们在网站@看到好的文章并分享到微博或其他社交网络网站@中,非常方便。
让我们探索下面的秘密。
1.注册开发者,获取应用秘钥和应用秘钥
百度很容易找到微博开放平台的入口,登录微博账号,点击账号头像,会提示编辑开发者信息。

可以看到如下页面,按照提示填写即可,这里紧急联系人可以自己填写,网站@无所谓,自己填写百度即可。

提交后,您需要在我的应用中验证您的真实姓名。上传图片时请耐心等待。有点慢,没有上传进度。上传后点击返回跳转到新页面:

根据需要选择,然后创建您自己的应用程序。至于各个应用术语的含义,我不是很清楚。我选择了另一个应用程序


创建后,您将收到一封收录应用密钥和应用机密的电子邮件。这是获得授权的关键。
2.获取令牌
点击首页的api接口,会跳转到api接口描述文档页面。你会发现这个api有很多功能,包括创建微博、删除微博、关注/取消关注等很多接口,但是每个接口都有Token需要访问。令牌从何而来?
首先你需要得到一个code code,其次你需要有一个URL来调用接口(因为我申请的是web应用)。
设置关联网址:

点击您的应用名称,然后在左侧菜单中找到高级信息,然后您可以对其进行编辑。

在api界面下点击

,进入授权界面查看使用情况

根据例子,你需要发送一个收录client_id和redirect_uri的get请求。可以直接拼接。
https://api.weibo.com/oauth2/a ... Dcode
其中client_id是你申请的app key,redirect_uri是你要回调的接口地址,api会原样返回。可以直接在浏览器中输入url,如下图:

这个页面熟悉吗?授权后网页会跳转回redirect_uri页面,url后面会写code。所以代码就在那里
接下来获取授权令牌,第二个授权接口:

页面上有详细的用法。发送http post请求,我是用java http-client4.5来做的,其实其他方法也可以。

代码写得不好,但或多或少有用。 5 个必需的参数值。我们已经拿到了最后两个,前两个在邮件里。代码将不会发布。打理好自己的打字,熟悉用法,以后难免会提出各种要求。
至此,我们已经授权成功,返回值中收录需要的token值。如果返回错误,请查看错误信息或百度错误信息。
从现在开始,你只需要带上token来请求各种接口。虽然有次数限制,但正常使用应该足够了。
后记:
1. 本来想做一些爬虫类的功能。我想在微博开放界面获取一些数据。不过从API来看,大部分都是基于web应用的微博分享功能。
例如,拥有自己的微博、获得粉丝、发微博、关注等都不是您所需要的。

前面提到的2.,微博开放api主要用于第三方网站@或者app访问微博,用微博登录或者通过api分享微博,所以有这个需求的完全可以拿仔细看看api接口。
在3.api接口中,所有get请求都可以直接拼接字符串获取,但是对于刚请求授权的get请求,需要用户账号同意向应用授权,所以必须登录到用户账号,如果浏览器保留了微博登录的cookie,那么浏览器可以自动登录获取目标码,如果没有,会提示登录

所以这个请求适合在浏览器上做,因为发送带有代码的请求来模拟登录,或者登录后使用cookie是很麻烦的。但是api中的其他get请求不会有这个问题,直接带上token就可以了。模拟登录可以使用selenium的webdriver来获取cookies。其他模拟登录的方法一般都很麻烦。
当然,如果你嵌入网站@,那么登录是用户的事。
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 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"));
}

5.如果你在网站@中嵌入了open api,一般做法是:在分享微博按钮(第三方登录按钮)上,发送微博授权认证,用户在网页点击授权后,后台获取code,根据code获取token。之后,如果您需要提取微博的用户名,您可以直接在后台发送请求。如果分享到微博,也可以通过api实现。
如果以后在实践中用到这些功能,请记下。本文到此结束。
来自 Wiz (Wiz)
使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步微博内容至自己(图))
网站优化 • 优采云 发表了文章 • 0 个评论 • 104 次浏览 • 2021-09-04 05:02
使用新浪微博开放平台api同步微博内容至自己网站,或推送至微信,或转发到微信公众号。
目前,腾讯微博应该对开放,移动端只需用vba远程调用即可;但微信现有体验不如腾讯微博,看看公众号“腾讯微博”的md设计,就知道了。
先有网站,再微信订阅号调用,
他们是oauth端到端授权,可以通过api或iframe等形式通过访问的。
方法有2种:1、通过第三方开发者,如:新浪微博。2、通过他们的reactnative来使用。
中文微博api
新浪微博应该不对外开放,开发者可以通过第三方(开放平台)调用。然后就可以搞定了。你可以搜索“国外oauthproxy”,可以看到各种教程。
既然可以通过微信filterapi进行匹配,就不用再单独申请一个微信apiapi了。
weibofilter.get(".../library/weibofilter.get")... 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步微博内容至自己(图))
使用新浪微博开放平台api同步微博内容至自己网站,或推送至微信,或转发到微信公众号。
目前,腾讯微博应该对开放,移动端只需用vba远程调用即可;但微信现有体验不如腾讯微博,看看公众号“腾讯微博”的md设计,就知道了。
先有网站,再微信订阅号调用,
他们是oauth端到端授权,可以通过api或iframe等形式通过访问的。
方法有2种:1、通过第三方开发者,如:新浪微博。2、通过他们的reactnative来使用。
中文微博api
新浪微博应该不对外开放,开发者可以通过第三方(开放平台)调用。然后就可以搞定了。你可以搜索“国外oauthproxy”,可以看到各种教程。
既然可以通过微信filterapi进行匹配,就不用再单独申请一个微信apiapi了。
weibofilter.get(".../library/weibofilter.get")...
使用新浪微博开放平台api同步微博内容至自己网站(java版新浪微博爬虫与具体语言无关的无关困难?)
网站优化 • 优采云 发表了文章 • 0 个评论 • 65 次浏览 • 2021-09-01 06:00
正好在读研究生的时候,为了完成这个课题,我写了一个Java版的新浪微博爬虫。现在说说题目和具体语言无关的一些难点。
1.login,这是编写这个爬虫的唯一也是最大的难点。当时(2013年10月),新浪微博的登录会采用base64加密用户名和rsa2加密,登录过程比较复杂。经过几次转发请求,都被javascript控制了,具体流程忘记了,但是我想说的是,我努力研究的模拟登录很快就没有了。我正在抓取数据 1 我已经能够登录一个月了。爬了差不多4个月的数据,还是登陆不上,具体原因我没研究过。看来新浪微博已经改版了,看起来像新浪微博。微博登录经常修改。
2.访问频率控制,我的访问频率控制在每秒5次(即每秒只发送5个请求到新浪微博服务器)。即便如此,ip仍然会被阻塞,请求不会被阻塞。有数据的情况下,使用代理IP。
3.你一直在访问某个大V的微博数据,即使你手动用鼠标点击访问,如果你在短时间内浏览了11个页面(看起来像这个数字,记不清了),每页应该有45个条目,这会限制您的访问。
总之,新浪微博的反爬虫非常好,抓到点乐趣也无妨。我的爬虫终于抓到了超过5000万条数据,每个大V的数据高达11*45条。 . 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(java版新浪微博爬虫与具体语言无关的无关困难?)
正好在读研究生的时候,为了完成这个课题,我写了一个Java版的新浪微博爬虫。现在说说题目和具体语言无关的一些难点。
1.login,这是编写这个爬虫的唯一也是最大的难点。当时(2013年10月),新浪微博的登录会采用base64加密用户名和rsa2加密,登录过程比较复杂。经过几次转发请求,都被javascript控制了,具体流程忘记了,但是我想说的是,我努力研究的模拟登录很快就没有了。我正在抓取数据 1 我已经能够登录一个月了。爬了差不多4个月的数据,还是登陆不上,具体原因我没研究过。看来新浪微博已经改版了,看起来像新浪微博。微博登录经常修改。
2.访问频率控制,我的访问频率控制在每秒5次(即每秒只发送5个请求到新浪微博服务器)。即便如此,ip仍然会被阻塞,请求不会被阻塞。有数据的情况下,使用代理IP。
3.你一直在访问某个大V的微博数据,即使你手动用鼠标点击访问,如果你在短时间内浏览了11个页面(看起来像这个数字,记不清了),每页应该有45个条目,这会限制您的访问。
总之,新浪微博的反爬虫非常好,抓到点乐趣也无妨。我的爬虫终于抓到了超过5000万条数据,每个大V的数据高达11*45条。 .
使用新浪微博开放平台api同步微博内容至自己网站(微博登录访问第三方网站需要注意哪些问题和瓶颈?)
网站优化 • 优采云 发表了文章 • 0 个评论 • 72 次浏览 • 2021-09-01 05:31
在平时的项目开发过程中,除了注册网站账号登录外,还可以调用第三方接口登录网站。这里我们以微博登录为例。微博登录包括身份认证、用户关系和内容传播。允许用户使用微博账号登录,访问第三方网站,分享内容,同步信息。
1、首先需要将需要授权的用户引导到以下地址:
https://api.weibo.com/oauth2/a ... T_URI
如果用户同意授权,页面跳转至YOUR_REGISTERED_REDIRECT_URI/?code=CODE:
2、然后会根据上面得到的代码兑换Access Token:
https://api.weibo.com/oauth2/a ... DCODE
返回值:JSON
{
"access_token": "SlAV32hkKG",
"remind_in": 3600,
"expires_in": 3600
}
3、最后使用获取到的OAuth2.0 Access Token调用API获取用户身份,完成用户登录。
为了方便,我们先把get和post封装到application下的common.php中:
应用公共文件common.php:
function get( $url, $_header = NULL )
{
$curl = curl_init();
//curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, false);
if( stripos($url, 'https://') !==FALSE )
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if ( $_header != NULL )
{
curl_setopt($curl, CURLOPT_HTTPHEADER, $_header);
}
$ret = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if( intval( $info["http_code"] ) == 200 )
{
return $ret;
}
return false;
}
/*
* post method
*/
function post( $url, $param )
{
$oCurl = curl_init ();
curl_setopt ( $oCurl, CURLOPT_SAFE_UPLOAD, false);
if (stripos ( $url, "https://" ) !== FALSE) {
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYHOST, false );
}
curl_setopt ( $oCurl, CURLOPT_URL, $url );
curl_setopt ( $oCurl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $oCurl, CURLOPT_POST, true );
curl_setopt ( $oCurl, CURLOPT_POSTFIELDS, $param );
$sContent = curl_exec ( $oCurl );
$aStatus = curl_getinfo ( $oCurl );
curl_close ( $oCurl );
if (intval ( $aStatus ["http_code"] ) == 200) {
return $sContent;
} else {
return false;
}
}
控制器处理代码Login.php:
class Login extends \think\Controller
{
public function index()
{
$key = "****";
$redirect_uri = "***微博应用安全域名***/?backurl=***项目本地域名***/home/login/webLogin?";
//授权后将页面重定向到本地项目
$redirect_uri = urlencode($redirect_uri);
$wb_url = "https://api.weibo.com/oauth2/authorize?client_id={$key}&response_type=code&redirect_uri={$redirect_uri}";
$this -> assign('wb_url',$wb_url);
return view('login');
}
public function webLogin(){
$key = "*****";
//接收code值
$code = input('get.code');
//换取Access Token: post方式请求 替换参数: client_id, client_secret,redirect_uri, code
$secret = "********";
$redirect_uri = "********";
$url = "https://api.weibo.com/oauth2/a ... id%3D{$key}&client_secret={$secret}&grant_type=authorization_code&redirect_uri={$redirect_uri}&code={$code}";
$token = post($url, array());
$token = json_decode($token, true);
//获取用户信息 : get方法,替换参数: access_token, uid
$url = "https://api.weibo.com/2/users/ ... en%3D{$token['access_token']}&uid={$token['uid']}";
$info = get($url);
if($info){
echo "<p>登录成功";
}
}
}
</p>
模板代码 login.html:
DOCTYPE html>
微博登录
点击这里进行微博登录
效果图:
以上内容希望对大家有所帮助。很多PHPer在进阶的时候总会遇到一些问题和瓶颈。写太多业务代码没有方向感。我不知道从哪里开始改进。整理了一些资料,包括但不限于:分布式架构、高扩展性、高性能、高并发、服务器性能调优、TP6、laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等诸多知识点。进阶进阶干货可以免费分享给你。如果您需要点击这里,请点击链接或关注我们下面的专栏 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(微博登录访问第三方网站需要注意哪些问题和瓶颈?)
在平时的项目开发过程中,除了注册网站账号登录外,还可以调用第三方接口登录网站。这里我们以微博登录为例。微博登录包括身份认证、用户关系和内容传播。允许用户使用微博账号登录,访问第三方网站,分享内容,同步信息。
1、首先需要将需要授权的用户引导到以下地址:
https://api.weibo.com/oauth2/a ... T_URI
如果用户同意授权,页面跳转至YOUR_REGISTERED_REDIRECT_URI/?code=CODE:
2、然后会根据上面得到的代码兑换Access Token:
https://api.weibo.com/oauth2/a ... DCODE
返回值:JSON
{
"access_token": "SlAV32hkKG",
"remind_in": 3600,
"expires_in": 3600
}
3、最后使用获取到的OAuth2.0 Access Token调用API获取用户身份,完成用户登录。
为了方便,我们先把get和post封装到application下的common.php中:
应用公共文件common.php:
function get( $url, $_header = NULL )
{
$curl = curl_init();
//curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, false);
if( stripos($url, 'https://') !==FALSE )
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if ( $_header != NULL )
{
curl_setopt($curl, CURLOPT_HTTPHEADER, $_header);
}
$ret = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if( intval( $info["http_code"] ) == 200 )
{
return $ret;
}
return false;
}
/*
* post method
*/
function post( $url, $param )
{
$oCurl = curl_init ();
curl_setopt ( $oCurl, CURLOPT_SAFE_UPLOAD, false);
if (stripos ( $url, "https://" ) !== FALSE) {
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYHOST, false );
}
curl_setopt ( $oCurl, CURLOPT_URL, $url );
curl_setopt ( $oCurl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $oCurl, CURLOPT_POST, true );
curl_setopt ( $oCurl, CURLOPT_POSTFIELDS, $param );
$sContent = curl_exec ( $oCurl );
$aStatus = curl_getinfo ( $oCurl );
curl_close ( $oCurl );
if (intval ( $aStatus ["http_code"] ) == 200) {
return $sContent;
} else {
return false;
}
}
控制器处理代码Login.php:
class Login extends \think\Controller
{
public function index()
{
$key = "****";
$redirect_uri = "***微博应用安全域名***/?backurl=***项目本地域名***/home/login/webLogin?";
//授权后将页面重定向到本地项目
$redirect_uri = urlencode($redirect_uri);
$wb_url = "https://api.weibo.com/oauth2/authorize?client_id={$key}&response_type=code&redirect_uri={$redirect_uri}";
$this -> assign('wb_url',$wb_url);
return view('login');
}
public function webLogin(){
$key = "*****";
//接收code值
$code = input('get.code');
//换取Access Token: post方式请求 替换参数: client_id, client_secret,redirect_uri, code
$secret = "********";
$redirect_uri = "********";
$url = "https://api.weibo.com/oauth2/a ... id%3D{$key}&client_secret={$secret}&grant_type=authorization_code&redirect_uri={$redirect_uri}&code={$code}";
$token = post($url, array());
$token = json_decode($token, true);
//获取用户信息 : get方法,替换参数: access_token, uid
$url = "https://api.weibo.com/2/users/ ... en%3D{$token['access_token']}&uid={$token['uid']}";
$info = get($url);
if($info){
echo "<p>登录成功";
}
}
}
</p>
模板代码 login.html:
DOCTYPE html>
微博登录
点击这里进行微博登录
效果图:



以上内容希望对大家有所帮助。很多PHPer在进阶的时候总会遇到一些问题和瓶颈。写太多业务代码没有方向感。我不知道从哪里开始改进。整理了一些资料,包括但不限于:分布式架构、高扩展性、高性能、高并发、服务器性能调优、TP6、laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等诸多知识点。进阶进阶干货可以免费分享给你。如果您需要点击这里,请点击链接或关注我们下面的专栏
使用新浪微博开放平台api同步微博内容至自己网站(新浪微博用户数据是必须通过微博开放平台的关于你的理解)
网站优化 • 优采云 发表了文章 • 0 个评论 • 70 次浏览 • 2021-08-31 01:02
楼主的问题比较复杂,我一一说,我能说什么...
首先说说你要实现的功能,其实很简单
通过新浪的开放平台实现这个功能其实只是为了降低你的开发难度
毕竟新浪有完整的SDK供你实现功能
不过,鉴于前几天新浪微博关闭了非客户端获取非当前登录用户好友列表的功能,新浪微博的开放平台可能不是一个好的选择。你现在
如果你不需要微薄的开放平台,那么你的选择就是拉页面。
拉页面很简单,加上新浪这段时间一直在调查这件事,就不多说了。
通常情况下,要在新浪微博上拉取用户数据,必须通过微博开放平台
至于你对开放平台的理解,这是完全错误的。您认为开放平台意味着应用程序可以向公众开放吗?事实上,开放平台意味着新浪会通过某种形式的授权向你开放他的数据,而不是你向公众开放。
最后,关于编程语言的选择,考虑到你是计算机大四学生,其实有很多选择,因为这不是一个难的应用
如果使用新浪微博开放平台,制作应用需要网络请求、Oauth2验证、Json解析、文本创建等相关知识
如果说拉页面,制作一个应用需要页面下载、JS解析、cookie处理、Http头制作、文字制作等相关知识
我个人觉得对于你提到的三种语言,上面列表中可能用到的知识几乎是一样的...
如果你追求速度,最好用Java
PHP 有点麻烦
Python 确实是个不错的选择
至于你最后提到的Python的功能,我只能说所有语言都可以做你提到的“处理文本并输出到文件”的事情。一般来说,专攻这种东西的应该是Shell Script...
Python主要用于服务器后端...(如果你说错了,Python程序员不要打我)服务器后端可以不仅仅是文本处理,还可以是网络连接处理和数据库交互...Don不用Python太简单了... 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(新浪微博用户数据是必须通过微博开放平台的关于你的理解)
楼主的问题比较复杂,我一一说,我能说什么...
首先说说你要实现的功能,其实很简单
通过新浪的开放平台实现这个功能其实只是为了降低你的开发难度
毕竟新浪有完整的SDK供你实现功能
不过,鉴于前几天新浪微博关闭了非客户端获取非当前登录用户好友列表的功能,新浪微博的开放平台可能不是一个好的选择。你现在
如果你不需要微薄的开放平台,那么你的选择就是拉页面。
拉页面很简单,加上新浪这段时间一直在调查这件事,就不多说了。
通常情况下,要在新浪微博上拉取用户数据,必须通过微博开放平台
至于你对开放平台的理解,这是完全错误的。您认为开放平台意味着应用程序可以向公众开放吗?事实上,开放平台意味着新浪会通过某种形式的授权向你开放他的数据,而不是你向公众开放。
最后,关于编程语言的选择,考虑到你是计算机大四学生,其实有很多选择,因为这不是一个难的应用
如果使用新浪微博开放平台,制作应用需要网络请求、Oauth2验证、Json解析、文本创建等相关知识
如果说拉页面,制作一个应用需要页面下载、JS解析、cookie处理、Http头制作、文字制作等相关知识
我个人觉得对于你提到的三种语言,上面列表中可能用到的知识几乎是一样的...
如果你追求速度,最好用Java
PHP 有点麻烦
Python 确实是个不错的选择
至于你最后提到的Python的功能,我只能说所有语言都可以做你提到的“处理文本并输出到文件”的事情。一般来说,专攻这种东西的应该是Shell Script...
Python主要用于服务器后端...(如果你说错了,Python程序员不要打我)服务器后端可以不仅仅是文本处理,还可以是网络连接处理和数据库交互...Don不用Python太简单了...
使用新浪微博开放平台api同步微博内容至自己网站(Cliff一步添加微博第三方登录的功能有哪些?(图) )
网站优化 • 优采云 发表了文章 • 0 个评论 • 78 次浏览 • 2021-08-31 01:01
)
Cliff 发表于天马营
在《Github第三方登录-通用第三方登录实现》中,我们实现了通用的第三方登录框架,包括OAUth的基本流程和最简单的用户注册。但是,不同的第三方登录由于细节不同,仍然存在很多陷阱。今天我们就从完善开发者信息入手,逐步添加微博第三方登录功能。
注意,完成微博第三方登录功能需要有域名和修改域名网站的权限,审核时需要修改主页。这里我们假设我们的域名是。
完善用户信息
首先我们进入新浪微博开发平台,登录我们的微博账号,点击右上角的【我的应用】,我们会看到相关的功能和相应的需要改进的信息。
我们可以看到,如果需要添加第三方应用,只需要填写基本信息即可,但是需要注意的是,如果添加微博第三方登录功能后需要通过审核,还需要通过【身份认证】。这里我们只需要填写【基本信息】即可。
点击右侧的【基本信息】,根据需要添加相关信息,最后完成邮箱验证,我们的基本信息就添加好了。然后我们需要添加网站相关信息:
选择左上角的【微连接】->【网站Access】,然后选择【立即访问】:
需要验证的是我们是否拥有网站的owner权限,需要修改网页对应的域名添加一行代码,根据需要修改。
验证通过后,我们可以在本地测试第三方登录。
添加第三方通用登录框架
《Github 第三方登录-通用第三方登录实现》一文完成了通用的第三方登录框架。如果想了解广义第三方登录的实现,请阅读《Github第三方登录-广义第三方登录实现》。
我们直接复制上面的代码,去掉github相关的代码:
添加新浪微博OAuthService
根据《Github第三方登录-通用第三方登录实现》,我们需要为微博添加两个类,SinaWeiboAPI和SinaWeiboOAuthService,但是SinaWeiboAPI已经在scribe中提供了,我们可以直接使用。接下来我们将添加新浪微博OAuthService:
public class SinaWeiboOAuthService extends OAuthServiceDeractor {
private static final String PROTECTED_RESOURCE_URL = "https://api.weibo.com/oauth2/get_token_info";
public SinaWeiboOAuthService(OAuthService oAuthService) {
super(oAuthService, OAuthTypes.SINA_WEIBO);
}
@Override
public OAuthUser getOAuthUser(Token accessToken) {
OAuthRequest request = new OAuthRequest(Verb.POST, PROTECTED_RESOURCE_URL);
this.signRequest(accessToken, request);
Response response = request.send();
OAuthUser oAuthUser = new OAuthUser();
oAuthUser.setoAuthType(getoAuthType());
oAuthUser.setoAuthId(JSONPath.eval(JSON.parse(response.getBody()), "$.uid").toString());
oAuthUser.setUser(new User());
return oAuthUser;
}
}
新浪微博OAuthService需要完成用户信息的获取,并转换成OAuthUser对象。新浪微博用户信息及相关参数的获取方式请参考新浪微博官方文档。
配置 OAuthService
最后根据我们在新浪微博中定义的appKey、appSecret和callback_uri来配置SinaWeiboOAuthService:
修改主机
因为微博的第三方登录是绑定域名的,所以需要我们的hosts文件,绑定本地的127.0.0.1。
windows系统hosts文件一般在C:\WINDOWS\system32\drivers\etc
Mac系统hosts文件地址一般为:/etc/hosts
在 hosts 文件中添加以下行:
127.0.0.1 tianmaying.com
调试
进入根目录,运行sudo mvn spring-boot:run命令访问课程|天马营地(之前在修改hosts的时候填写申请信息和修改域名,这三个域名一定要一样),因为必须通过域名Access来完成,所以我们需要监听80端口,并且需要运行时超级管理员权限。
注意:代码上线后需要新浪微博审核,进入新浪微博-我的申请,按要求填写。
查看全部
使用新浪微博开放平台api同步微博内容至自己网站(Cliff一步添加微博第三方登录的功能有哪些?(图)
)
Cliff 发表于天马营
在《Github第三方登录-通用第三方登录实现》中,我们实现了通用的第三方登录框架,包括OAUth的基本流程和最简单的用户注册。但是,不同的第三方登录由于细节不同,仍然存在很多陷阱。今天我们就从完善开发者信息入手,逐步添加微博第三方登录功能。
注意,完成微博第三方登录功能需要有域名和修改域名网站的权限,审核时需要修改主页。这里我们假设我们的域名是。
完善用户信息
首先我们进入新浪微博开发平台,登录我们的微博账号,点击右上角的【我的应用】,我们会看到相关的功能和相应的需要改进的信息。

我们可以看到,如果需要添加第三方应用,只需要填写基本信息即可,但是需要注意的是,如果添加微博第三方登录功能后需要通过审核,还需要通过【身份认证】。这里我们只需要填写【基本信息】即可。
点击右侧的【基本信息】,根据需要添加相关信息,最后完成邮箱验证,我们的基本信息就添加好了。然后我们需要添加网站相关信息:

选择左上角的【微连接】->【网站Access】,然后选择【立即访问】:

需要验证的是我们是否拥有网站的owner权限,需要修改网页对应的域名添加一行代码,根据需要修改。
验证通过后,我们可以在本地测试第三方登录。
添加第三方通用登录框架
《Github 第三方登录-通用第三方登录实现》一文完成了通用的第三方登录框架。如果想了解广义第三方登录的实现,请阅读《Github第三方登录-广义第三方登录实现》。
我们直接复制上面的代码,去掉github相关的代码:

添加新浪微博OAuthService
根据《Github第三方登录-通用第三方登录实现》,我们需要为微博添加两个类,SinaWeiboAPI和SinaWeiboOAuthService,但是SinaWeiboAPI已经在scribe中提供了,我们可以直接使用。接下来我们将添加新浪微博OAuthService:
public class SinaWeiboOAuthService extends OAuthServiceDeractor {
private static final String PROTECTED_RESOURCE_URL = "https://api.weibo.com/oauth2/get_token_info";
public SinaWeiboOAuthService(OAuthService oAuthService) {
super(oAuthService, OAuthTypes.SINA_WEIBO);
}
@Override
public OAuthUser getOAuthUser(Token accessToken) {
OAuthRequest request = new OAuthRequest(Verb.POST, PROTECTED_RESOURCE_URL);
this.signRequest(accessToken, request);
Response response = request.send();
OAuthUser oAuthUser = new OAuthUser();
oAuthUser.setoAuthType(getoAuthType());
oAuthUser.setoAuthId(JSONPath.eval(JSON.parse(response.getBody()), "$.uid").toString());
oAuthUser.setUser(new User());
return oAuthUser;
}
}
新浪微博OAuthService需要完成用户信息的获取,并转换成OAuthUser对象。新浪微博用户信息及相关参数的获取方式请参考新浪微博官方文档。
配置 OAuthService
最后根据我们在新浪微博中定义的appKey、appSecret和callback_uri来配置SinaWeiboOAuthService:
修改主机
因为微博的第三方登录是绑定域名的,所以需要我们的hosts文件,绑定本地的127.0.0.1。
windows系统hosts文件一般在C:\WINDOWS\system32\drivers\etc
Mac系统hosts文件地址一般为:/etc/hosts
在 hosts 文件中添加以下行:
127.0.0.1 tianmaying.com
调试
进入根目录,运行sudo mvn spring-boot:run命令访问课程|天马营地(之前在修改hosts的时候填写申请信息和修改域名,这三个域名一定要一样),因为必须通过域名Access来完成,所以我们需要监听80端口,并且需要运行时超级管理员权限。
注意:代码上线后需要新浪微博审核,进入新浪微博-我的申请,按要求填写。

新浪微博API关闭:想用.js是我之前没用过的
网站优化 • 优采云 发表了文章 • 0 个评论 • 94 次浏览 • 2021-08-24 04:19
新浪微博API关闭:想用.js是我之前没用过的
我一直在使用新浪微博API进行数据同步。今年年初,大约是1月8日。微博 API 突然不可用,原因不明。接口调用不断出现 403 错误。私信“微博开发平台”联系一直是机器回复。
所以我猜新浪微博关闭了它的API。我猜可能是因为微博太难盈利了,所以就跟腾讯学了,把数据都关了,赚了很多钱。
但是,我在微博上发布了很多数据,但是微博至今还没有提供数据备份,所以我还需要寻找其他方式来同步和备份数据,所以我想使用微博来转换RSS的方式用于数据导出。
11年前做过一个PHP微博转换项目,但是时间太久,里面的数据结构完全变了,不能用了,于是上网搜了一下。看看有没有现成的项目,结果发现github上有个weibo-rss的项目可以用,但是部署用的是Node.js,之前没用过。
我在国外买的云服务器使用的是LNMP(Linux-Nginx-MySQL-PHP)环境。 web服务器是Nginx,体积小,稳定,占用资源少。一个低调的服务器可以做一个动态的网站。我尝试将此 Node.js 项目部署到此服务器。
服务器没有安装Node.js,需要先安装环境。面板中有一个“PM2管理器”,就是一个node.js管理器,内置了node.js + npm + nvm + pm2,可以一键安装。
安装环境后,按照项目说明开始手动部署。
git 克隆
cd weibo-rss
npm 安装
pm2 启动 bin/www
按照之前部署php的思路,部署到wwwroot下的一个目录下。从网页访问后,页面可以出来,但是RSS提示“获取数据失败”。
后来咨询了项目作者,发现项目部署到了3000端口,而不是Nginx的80和443端口。我用3000端口的地址访问,可以正常获取数据。
当然,我还是希望最终能在Nginx下使用。在 Nginx 中设置反向代理并将目录映射到 3000 端口以访问 Node.js 项目的 80 和 443 端口。
() () 查看全部
新浪微博API关闭:想用.js是我之前没用过的

我一直在使用新浪微博API进行数据同步。今年年初,大约是1月8日。微博 API 突然不可用,原因不明。接口调用不断出现 403 错误。私信“微博开发平台”联系一直是机器回复。
所以我猜新浪微博关闭了它的API。我猜可能是因为微博太难盈利了,所以就跟腾讯学了,把数据都关了,赚了很多钱。
但是,我在微博上发布了很多数据,但是微博至今还没有提供数据备份,所以我还需要寻找其他方式来同步和备份数据,所以我想使用微博来转换RSS的方式用于数据导出。
11年前做过一个PHP微博转换项目,但是时间太久,里面的数据结构完全变了,不能用了,于是上网搜了一下。看看有没有现成的项目,结果发现github上有个weibo-rss的项目可以用,但是部署用的是Node.js,之前没用过。
我在国外买的云服务器使用的是LNMP(Linux-Nginx-MySQL-PHP)环境。 web服务器是Nginx,体积小,稳定,占用资源少。一个低调的服务器可以做一个动态的网站。我尝试将此 Node.js 项目部署到此服务器。
服务器没有安装Node.js,需要先安装环境。面板中有一个“PM2管理器”,就是一个node.js管理器,内置了node.js + npm + nvm + pm2,可以一键安装。
安装环境后,按照项目说明开始手动部署。
git 克隆
cd weibo-rss
npm 安装
pm2 启动 bin/www
按照之前部署php的思路,部署到wwwroot下的一个目录下。从网页访问后,页面可以出来,但是RSS提示“获取数据失败”。
后来咨询了项目作者,发现项目部署到了3000端口,而不是Nginx的80和443端口。我用3000端口的地址访问,可以正常获取数据。
当然,我还是希望最终能在Nginx下使用。在 Nginx 中设置反向代理并将目录映射到 3000 端口以访问 Node.js 项目的 80 和 443 端口。

() ()
Java调用新浪微博API接口发微博,逐条讲解,绝对清晰
网站优化 • 优采云 发表了文章 • 0 个评论 • 300 次浏览 • 2021-08-21 01:32
Java调用新浪微博API接口发送微博,一一讲解,绝对清晰
最近在做一个课程设计,用微博控制树莓派,用树莓派控制发光二极管的开和关。主要设计分为两层。上层是使用Java调用新浪微博API实现微博。监控,当我的微博回复时,它会自动读取评论内容,并根据评论指令的内容确定树莓派的控制动作。下层是使用C语言调用操作系统底层接口,通过树莓派GPIO接口来控制发光二极管的闪烁和开启和关闭。
由于网上教程很老了,而且最近微博界面也发生了很大的变化,所以决定写一篇新的详细的博文。如果能帮到你,那将是我莫大的荣幸。同时也非常希望能与大家交流。如果您有任何问题,请在评论中回复我。
本文将在最后一步一步讲解如何申请微博接口,以及如何用Java发布自己的微博。 【首先你得有一个微博账号】
一、申请成为开发者
在此处申请。点击“我的申请”,您可以看到身份认证:未认证,您已经完成了您应该做的。我不会在这里详细介绍。审稿很快,不到一天就通过了。
之后应该是这样的(哈哈,欢迎共同粉丝):
二、创建应用程序
此处的在线教程具有误导性。我跟着那些教程,最终把我拖进了坑里。我已经爬出来了。希望你不要再陷进去了。
如果要使用Java来控制微博,在创建应用程序时不能创建“站内应用程序”。您必须创建一个“移动应用程序”。请注意这一点,否则您将无法通过授权验证步骤。
“微连接”-“移动应用”-“立即访问”-“继续创建”
现在我们来到了填写信息的地方,自己写一个应用名称(以后改名会很麻烦,请一次性填写),例如“手机控制树莓派”,客户端选择“手机”“应用平台只要是Android,但没有效果。然后“创建”。好了,现在我们进入了一个新的界面,我们只是为了测试,因此无需审核,除非您想在线提交申请。
三、重要信息设置和记录
这一步很重要,直接关系到以后的正确访问。
左侧面板:“应用信息”-“高级信息”
查看“OAuth2.0 授权设置”,点击“编辑”。 “授权回调页面:”和“取消授权回调页面:”非常重要。那些创建了“站内应用”的人应该在这里哭,因为他们不能修改“授权回调页面:”。 . .
那怎么改呢?两者都改为:这是微博的默认设置,我们测试就够了。
如图所示:
再次点击“基本信息”,
如图所示:
注意:APP Key和App Secret,后面会用到。
四、download 微博Java SDK
过来
下载压缩包:weibo4j-oauth2-beta3.1.1.zip
五、将 SDK 导入 Eclipse
什么?您是否一直使用文本编辑器来编写 Java?嗯,听我的劝告,我写这东西的时候应该改用Eclipse,不然就累死了。
打开Eclipse,“文件”-“导入”-“常规下的Existing Projects into Workspace”-“选择归档文件”-选择刚才的SDK压缩包-“完成”。
导入现已完成。
六、修改配置信息
打开图中的config.properties文件,将“client_ID”和“client_SERCRET”后面的值改成你记下的“App Key”和“App Secret”。将“redirect_URI”的值更改为
保存。
七、应用授权
如图所示:
编译并执行 OAuth4Code.java 文件。
您的浏览器将被自动调用以打开授权页面。如下图:
点击“授权”。
转到下图:
不要急于关闭浏览器!请复制地址栏中code=后面的字符串。
回到 Eclipse,下面的 Console 里有什么在等着你。完成后按回车。[回车]:
是的,就是他。粘贴刚刚复制的字符串,然后按 Enter。
好的,请稍等几秒钟,让您的授权信息返回。
AccessToken [accessToken=xxxxxxxxxxxxxxx, expireIn=157679999, refreshToken=,uid=xxxxxxxxx]
“access_token”后面的字符串和“uid”后面的数字很重要,所以写下来。
现在您可以关闭浏览器了。
这里提醒一下,如果应用程序是作为“现场应用程序”而不是“移动应用程序”创建的,那么这一步将不会成功。您将始终看到“error:redirect_uri_mismatch”页面。
八:发微博
在微博SDK包中,你可以看看examples下的很多程序。这些是示例,涵盖了 SDK 可以执行的所有操作。您只需要参考它们并编写它们即可。
weibo4j.examples.timeline 包中的UpdateStatus.java 是一个发微博的例子。
我们在src里面新建了一个叫myweibo的包,下面这些类就不用创建了,随意。
我会演示如何在微博上发帖。
在我的微博下新建一个类SendWeibo.java
复制examples-weibo4j.examples.timeline-UpdateStatus.java示例程序中main方法的整个主体,粘贴后Eclipse会自动导入需要引用的包。
将 String access_token= 替换为您刚才的 access_token 值。 String statuses=您的微博正文如下。
更改完成后:
然后只要运行这段Java代码,只要不报错就成功了。看看你的微博。
<p>注意:如果你不知道什么是函数(我还是习惯叫它函数,而不是方法),也不知道它的参数的含义,请将光标移到函数上。<//p
pimg src='https://www.programminghunter.com/images/138/f7/f758a711d56952f39a3afcf3e786f40a.png' alt=''//p
pSDK中提供的各种功能都非常实用,微博获取什么,获取评论,获取评论ID,回复评论,获取地理位置,获取照片,发布照片,获取粉丝关系,获取朋友圈微博等等。等等,太多了,我们自己试试吧。/p
p九:发布程序:/p
p如果想把程序运行在其他地方,比如树莓派Linux或者虚拟机中的Linux,有几点需要注意。/p
p让我们先发布程序:/p
p我们右击weibo4j-oauth2项目,选择“导出”,然后如图:/p
pimg src='https://www.programminghunter.com/images/391/44/4438e353d2bb3ab0314fca661a57a407.png' alt=''//p
p下一步:/p
pimg src='https://www.programminghunter.com/images/447/a7/a78bc46ab785219a4b7f4f47126f730f.png' alt=''//p
p哪个程序是入口点,启动配置会选择哪个。这里我们正在执行微博程序:SendWeibo。/p
p选择路径,在下方的图书馆办理中选择第二个保险点。然后完成,可能会弹出警告,不要着急,点击确定。/p
p然后就生成了。然后一双击jar包,程序就一闪而过,留下一个weibo.log文件,就是一个日志。如果出现错误,您可以查看日志以查找原因。现在程序执行完毕,它发布了另一个微博。/p
p你可以把这个文件拖到虚拟机的Linux上。我们已经看到 Java 是如何到处运行的。结果运行java -jar 1.jar后报错。发生了什么?/p
p仔细看错误信息,上面写着.UnknownHostException,然后看错误信息中是否写了InetAddress.getLocalHost()方法。没错。/p
p解决方案:/p
p首先,ifconfig,查看你的IP。无论是LAN IP还是外部IP都没有关系。它只需要您看到的本地 IP。/p
p修改host文件/etc/hosts并添加一行,/p
p[普通]/p
p你的 ip 你的主机名#KD.localdomain 是我的主机名/p
p至于如何查看主机名,应该收录在错误信息中,比如localhost.localdomain。 KD.localdomain 是我自己改的。您还可以检查 /etc/hosts 以确认您的主机名。/p
p做完这个修改后,再次尝试运行1.jar,应该可以成功。我不会截图。开启虚拟机很麻烦。/p
pPS:发微博后试一下,不要乱发,这个效果类似刷屏,会被打。/p
p新浪微博的网址是这样的:三部分。/p
p第一部分(绿色部分)是新浪微博的域名,第二部分(红色部分)是博主Uid,第三部分(蓝色部分)是一串看似随机的字符串。/p
p如果可以通过该方法计算出蓝色字符串与返回数组的对应关系,解决起来就容易多了。/p
p先将蓝色字符串分组,从后到前4个字符,得到如下三组字符:/p
pz/p
p8Elg/p
pBLQ/p
p将它们转换为 62 的十六进制值是 35, 2061702, 8999724 并且将它们组合起来就是一个类似于这个字符串的 35224 字符串/p
p通过发现返回的二维数组中有一个[mid]字段,返回结果为35224.,正好对应。/p
pprespan style="color: #008080;" 1/span span style="color: #0000ff;"package/spanspan style="color: #000000;" step0;
/spanspan style="color: #008080;" 2/span
span style="color: #008080;" 3/span
span style="color: #008080;" 4/span span style="color: #008000;"/**/span
span style="color: #008080;" 5/span span style="color: #008000;" *
/spanspan style="color: #008080;" 6/span span style="color: #008000;" * @ClassName: Mid2IdUtil Java版
/spanspan style="color: #008080;" 7/span span style="color: #008000;" * @Description: 新浪uid转url (id转mid)
/spanspan style="color: #008080;" 8/span span style="color: #008000;" * /spanspan style="color: #808080;"@author/spanspan style="color: #008000;" zeze
/spanspan style="color: #008080;" 9/span span style="color: #008000;" * @date 2016年4月10日 上午10:49:40
/spanspan style="color: #008080;" 10/span span style="color: #008000;" *
/spanspan style="color: #008080;" 11/span span style="color: #008000;"*//span
span style="color: #008080;" 12/span span style="color: #0000ff;"public/span span style="color: #0000ff;"class/spanspan style="color: #000000;" Id2MidUtil {
/spanspan style="color: #008080;" 13/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/span span style="color: #0000ff;"void/spanspan style="color: #000000;" main(String[] args) {
/spanspan style="color: #008080;" 14/span System.out.println(Uid2Mid("Aw8Wrzaes"span style="color: #000000;"));
/spanspan style="color: #008080;" 15/span System.out.println(Mid2Uid("3676608718380816"));span style="color: #008000;"///spanspan style="color: #008000;"Mid2Id/span
span style="color: #008080;" 16/span span style="color: #000000;" }
/spanspan style="color: #008080;" 17/span span style="color: #0000ff;"private/span span style="color: #0000ff;"static/span String[] str62keys = { "0", "1", "2", "3", "4", "5", "6"span style="color: #000000;",
/spanspan style="color: #008080;" 18/span "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j"span style="color: #000000;",
/spanspan style="color: #008080;" 19/span "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w"span style="color: #000000;",
/spanspan style="color: #008080;" 20/span "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J"span style="color: #000000;",
/spanspan style="color: #008080;" 21/span "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W"span style="color: #000000;",
/spanspan style="color: #008080;" 22/span "X", "Y", "Z"span style="color: #000000;" };
/spanspan style="color: #008080;" 23/span
span style="color: #008080;" 24/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/spanspan style="color: #000000;" String IntToEnode62(Integer int10) {
/spanspan style="color: #008080;" 25/span String s62 = ""span style="color: #000000;";
/spanspan style="color: #008080;" 26/span span style="color: #0000ff;"int/span r = 0span style="color: #000000;";
/spanspan style="color: #008080;" 27/span span style="color: #0000ff;"while/span (int10 != 0span style="color: #000000;") {
/spanspan style="color: #008080;" 28/span r = int10 % 62span style="color: #000000;";
/spanspan style="color: #008080;" 29/span s62 = str62keys[r] +span style="color: #000000;" s62;
/spanspan style="color: #008080;" 30/span int10 = (span style="color: #0000ff;"int/span) Math.floor(int10 / 62.0span style="color: #000000;");
/spanspan style="color: #008080;" 31/span span style="color: #000000;" }
/spanspan style="color: #008080;" 32/span span style="color: #0000ff;"return/spanspan style="color: #000000;" s62;
/spanspan style="color: #008080;" 33/span span style="color: #000000;" }
/spanspan style="color: #008080;" 34/span
span style="color: #008080;" 35/span span style="color: #008000;"///spanspan style="color: #008000;"62进制转成10进制/span
span style="color: #008080;" 36/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/spanspan style="color: #000000;" String Str62toInt(String str62)
/spanspan style="color: #008080;" 37/span span style="color: #000000;" {
/spanspan style="color: #008080;" 38/span span style="color: #0000ff;"long/span i64 = 0span style="color: #000000;";
/spanspan style="color: #008080;" 39/span span style="color: #0000ff;"for/span (span style="color: #0000ff;"int/span i = 0; i < str62.length(); i++span style="color: #000000;")
/spanspan style="color: #008080;" 40/span span style="color: #000000;" {
/spanspan style="color: #008080;" 41/span span style="color: #0000ff;"long/span Vi = (span style="color: #0000ff;"long/span)Math.pow(62, (str62.length() - i - 1span style="color: #000000;"));
/spanspan style="color: #008080;" 42/span String t = str62.substring(i,i+1span style="color: #000000;");
/spanspan style="color: #008080;" 43/span
span style="color: #008080;" 44/span i64 += Vi *span style="color: #000000;" findindex(t);
/spanspan style="color: #008080;" 45/span span style="color: #000000;" }
/spanspan style="color: #008080;" 46/span span style="color: #008000;"///spanspan style="color: #008000;" System.out.println(i64);/span
span style="color: #008080;" 47/span span style="color: #0000ff;"return/spanspan style="color: #000000;" Long.toString(i64);
/spanspan style="color: #008080;" 48/span span style="color: #000000;" }
/spanspan style="color: #008080;" 49/span
span style="color: #008080;" 50/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/span span style="color: #0000ff;"int/spanspan style="color: #000000;" findindex(String t)
/spanspan style="color: #008080;" 51/span span style="color: #000000;" {
/spanspan style="color: #008080;" 52/span span style="color: #0000ff;"int/span index=0span style="color: #000000;";
/spanspan style="color: #008080;" 53/span span style="color: #0000ff;"for/span(span style="color: #0000ff;"int/span i=0;istr62keys.length;i++span style="color: #000000;")
/spanspan style="color: #008080;" 54/span span style="color: #000000;" {
/spanspan style="color: #008080;" 55/span span style="color: #0000ff;"if/spanspan style="color: #000000;"(str62keys[i].equals(t)){
/spanspan style="color: #008080;" 56/span index=span style="color: #000000;"i;
/spanspan style="color: #008080;" 57/span span style="color: #0000ff;"break/spanspan style="color: #000000;";
/spanspan style="color: #008080;" 58/span span style="color: #000000;" }
/spanspan style="color: #008080;" 59/span span style="color: #000000;" }
/spanspan style="color: #008080;" 60/span span style="color: #0000ff;"return/spanspan style="color: #000000;" index;
/spanspan style="color: #008080;" 61/span span style="color: #000000;" }
/spanspan style="color: #008080;" 62/span
span style="color: #008080;" 63/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/spanspan style="color: #000000;" String Uid2Mid(String mid)
/spanspan style="color: #008080;" 64/span span style="color: #000000;" {
/spanspan style="color: #008080;" 65/span String id = ""span style="color: #000000;";
/spanspan style="color: #008080;" 66/span span style="color: #0000ff;"for/span (span style="color: #0000ff;"int/span i = mid.length() - 4; i -4; i = i - 4) span style="color: #008000;"///spanspan style="color: #008000;"从最后往前以4字节为一组读取URL字符/span
span style="color: #008080;" 67/span span style="color: #000000;" {
/spanspan style="color: #008080;" 68/span span style="color: #0000ff;"int/span offset1 = i < 0 ? 0span style="color: #000000;" : i;
/spanspan style="color: #008080;" 69/span span style="color: #0000ff;"int/span len = i < 0 ? mid.length() % 4 : 4span style="color: #000000;";
/spanspan style="color: #008080;" 70/span
span style="color: #008080;" 71/span String str = mid.substring(offset1, offset1+span style="color: #000000;"len);
/spanspan style="color: #008080;" 72/span span style="color: #008000;"///spanspan style="color: #008000;" System.out.println(offset1+" "+len+" "+str);/span
span style="color: #008080;" 73/span
span style="color: #008080;" 74/span str =span style="color: #000000;" Str62toInt(str);
/spanspan style="color: #008080;" 75/span
span style="color: #008080;" 76/span span style="color: #0000ff;"if/span (offset1 > 0) //若不是第一组,则不足7位补0
77 {
78 while (str.length() < 7)
79 {
80 str = "0" + str;
81 }
82 }
83 id = str + id;
84 }
85
86 return id;
87 }
88
89
90 public static String Mid2Uid(String str10) {
91 String mid = "";
92 int count = 1 ;
93 for (int i = str10.length() - 7; i > -7; i = i - 7) // 从最后往前以7字节为一组读取字符
94 {
95 int offset = i < 0 ? 0 : i;
96 int len = i < 0 ? str10.length() % 7 : 7;
97 String temp = str10.substring(offset, offset + len);
98 String url =IntToEnode62(Integer.valueOf(temp));
99 if(count!=3){//z xghm uXym 生成的链接从右往左的前2组,4位一组,不足4位的补0
100 for(int j=0;j 查看全部
Java调用新浪微博API接口发微博,逐条讲解,绝对清晰
Java调用新浪微博API接口发送微博,一一讲解,绝对清晰
最近在做一个课程设计,用微博控制树莓派,用树莓派控制发光二极管的开和关。主要设计分为两层。上层是使用Java调用新浪微博API实现微博。监控,当我的微博回复时,它会自动读取评论内容,并根据评论指令的内容确定树莓派的控制动作。下层是使用C语言调用操作系统底层接口,通过树莓派GPIO接口来控制发光二极管的闪烁和开启和关闭。
由于网上教程很老了,而且最近微博界面也发生了很大的变化,所以决定写一篇新的详细的博文。如果能帮到你,那将是我莫大的荣幸。同时也非常希望能与大家交流。如果您有任何问题,请在评论中回复我。
本文将在最后一步一步讲解如何申请微博接口,以及如何用Java发布自己的微博。 【首先你得有一个微博账号】
一、申请成为开发者
在此处申请。点击“我的申请”,您可以看到身份认证:未认证,您已经完成了您应该做的。我不会在这里详细介绍。审稿很快,不到一天就通过了。
之后应该是这样的(哈哈,欢迎共同粉丝):

二、创建应用程序
此处的在线教程具有误导性。我跟着那些教程,最终把我拖进了坑里。我已经爬出来了。希望你不要再陷进去了。
如果要使用Java来控制微博,在创建应用程序时不能创建“站内应用程序”。您必须创建一个“移动应用程序”。请注意这一点,否则您将无法通过授权验证步骤。
“微连接”-“移动应用”-“立即访问”-“继续创建”
现在我们来到了填写信息的地方,自己写一个应用名称(以后改名会很麻烦,请一次性填写),例如“手机控制树莓派”,客户端选择“手机”“应用平台只要是Android,但没有效果。然后“创建”。好了,现在我们进入了一个新的界面,我们只是为了测试,因此无需审核,除非您想在线提交申请。
三、重要信息设置和记录
这一步很重要,直接关系到以后的正确访问。
左侧面板:“应用信息”-“高级信息”
查看“OAuth2.0 授权设置”,点击“编辑”。 “授权回调页面:”和“取消授权回调页面:”非常重要。那些创建了“站内应用”的人应该在这里哭,因为他们不能修改“授权回调页面:”。 . .
那怎么改呢?两者都改为:这是微博的默认设置,我们测试就够了。
如图所示:

再次点击“基本信息”,
如图所示:

注意:APP Key和App Secret,后面会用到。
四、download 微博Java SDK
过来
下载压缩包:weibo4j-oauth2-beta3.1.1.zip
五、将 SDK 导入 Eclipse
什么?您是否一直使用文本编辑器来编写 Java?嗯,听我的劝告,我写这东西的时候应该改用Eclipse,不然就累死了。
打开Eclipse,“文件”-“导入”-“常规下的Existing Projects into Workspace”-“选择归档文件”-选择刚才的SDK压缩包-“完成”。
导入现已完成。
六、修改配置信息

打开图中的config.properties文件,将“client_ID”和“client_SERCRET”后面的值改成你记下的“App Key”和“App Secret”。将“redirect_URI”的值更改为
保存。
七、应用授权
如图所示:

编译并执行 OAuth4Code.java 文件。
您的浏览器将被自动调用以打开授权页面。如下图:

点击“授权”。
转到下图:

不要急于关闭浏览器!请复制地址栏中code=后面的字符串。
回到 Eclipse,下面的 Console 里有什么在等着你。完成后按回车。[回车]:
是的,就是他。粘贴刚刚复制的字符串,然后按 Enter。
好的,请稍等几秒钟,让您的授权信息返回。
AccessToken [accessToken=xxxxxxxxxxxxxxx, expireIn=157679999, refreshToken=,uid=xxxxxxxxx]
“access_token”后面的字符串和“uid”后面的数字很重要,所以写下来。
现在您可以关闭浏览器了。
这里提醒一下,如果应用程序是作为“现场应用程序”而不是“移动应用程序”创建的,那么这一步将不会成功。您将始终看到“error:redirect_uri_mismatch”页面。
八:发微博
在微博SDK包中,你可以看看examples下的很多程序。这些是示例,涵盖了 SDK 可以执行的所有操作。您只需要参考它们并编写它们即可。
weibo4j.examples.timeline 包中的UpdateStatus.java 是一个发微博的例子。
我们在src里面新建了一个叫myweibo的包,下面这些类就不用创建了,随意。

我会演示如何在微博上发帖。
在我的微博下新建一个类SendWeibo.java
复制examples-weibo4j.examples.timeline-UpdateStatus.java示例程序中main方法的整个主体,粘贴后Eclipse会自动导入需要引用的包。
将 String access_token= 替换为您刚才的 access_token 值。 String statuses=您的微博正文如下。
更改完成后:

然后只要运行这段Java代码,只要不报错就成功了。看看你的微博。

<p>注意:如果你不知道什么是函数(我还是习惯叫它函数,而不是方法),也不知道它的参数的含义,请将光标移到函数上。<//p
pimg src='https://www.programminghunter.com/images/138/f7/f758a711d56952f39a3afcf3e786f40a.png' alt=''//p
pSDK中提供的各种功能都非常实用,微博获取什么,获取评论,获取评论ID,回复评论,获取地理位置,获取照片,发布照片,获取粉丝关系,获取朋友圈微博等等。等等,太多了,我们自己试试吧。/p
p九:发布程序:/p
p如果想把程序运行在其他地方,比如树莓派Linux或者虚拟机中的Linux,有几点需要注意。/p
p让我们先发布程序:/p
p我们右击weibo4j-oauth2项目,选择“导出”,然后如图:/p
pimg src='https://www.programminghunter.com/images/391/44/4438e353d2bb3ab0314fca661a57a407.png' alt=''//p
p下一步:/p
pimg src='https://www.programminghunter.com/images/447/a7/a78bc46ab785219a4b7f4f47126f730f.png' alt=''//p
p哪个程序是入口点,启动配置会选择哪个。这里我们正在执行微博程序:SendWeibo。/p
p选择路径,在下方的图书馆办理中选择第二个保险点。然后完成,可能会弹出警告,不要着急,点击确定。/p
p然后就生成了。然后一双击jar包,程序就一闪而过,留下一个weibo.log文件,就是一个日志。如果出现错误,您可以查看日志以查找原因。现在程序执行完毕,它发布了另一个微博。/p
p你可以把这个文件拖到虚拟机的Linux上。我们已经看到 Java 是如何到处运行的。结果运行java -jar 1.jar后报错。发生了什么?/p
p仔细看错误信息,上面写着.UnknownHostException,然后看错误信息中是否写了InetAddress.getLocalHost()方法。没错。/p
p解决方案:/p
p首先,ifconfig,查看你的IP。无论是LAN IP还是外部IP都没有关系。它只需要您看到的本地 IP。/p
p修改host文件/etc/hosts并添加一行,/p
p[普通]/p
p你的 ip 你的主机名#KD.localdomain 是我的主机名/p
p至于如何查看主机名,应该收录在错误信息中,比如localhost.localdomain。 KD.localdomain 是我自己改的。您还可以检查 /etc/hosts 以确认您的主机名。/p
p做完这个修改后,再次尝试运行1.jar,应该可以成功。我不会截图。开启虚拟机很麻烦。/p
pPS:发微博后试一下,不要乱发,这个效果类似刷屏,会被打。/p
p新浪微博的网址是这样的:三部分。/p
p第一部分(绿色部分)是新浪微博的域名,第二部分(红色部分)是博主Uid,第三部分(蓝色部分)是一串看似随机的字符串。/p
p如果可以通过该方法计算出蓝色字符串与返回数组的对应关系,解决起来就容易多了。/p
p先将蓝色字符串分组,从后到前4个字符,得到如下三组字符:/p
pz/p
p8Elg/p
pBLQ/p
p将它们转换为 62 的十六进制值是 35, 2061702, 8999724 并且将它们组合起来就是一个类似于这个字符串的 35224 字符串/p
p通过发现返回的二维数组中有一个[mid]字段,返回结果为35224.,正好对应。/p
pprespan style="color: #008080;" 1/span span style="color: #0000ff;"package/spanspan style="color: #000000;" step0;
/spanspan style="color: #008080;" 2/span
span style="color: #008080;" 3/span
span style="color: #008080;" 4/span span style="color: #008000;"/**/span
span style="color: #008080;" 5/span span style="color: #008000;" *
/spanspan style="color: #008080;" 6/span span style="color: #008000;" * @ClassName: Mid2IdUtil Java版
/spanspan style="color: #008080;" 7/span span style="color: #008000;" * @Description: 新浪uid转url (id转mid)
/spanspan style="color: #008080;" 8/span span style="color: #008000;" * /spanspan style="color: #808080;"@author/spanspan style="color: #008000;" zeze
/spanspan style="color: #008080;" 9/span span style="color: #008000;" * @date 2016年4月10日 上午10:49:40
/spanspan style="color: #008080;" 10/span span style="color: #008000;" *
/spanspan style="color: #008080;" 11/span span style="color: #008000;"*//span
span style="color: #008080;" 12/span span style="color: #0000ff;"public/span span style="color: #0000ff;"class/spanspan style="color: #000000;" Id2MidUtil {
/spanspan style="color: #008080;" 13/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/span span style="color: #0000ff;"void/spanspan style="color: #000000;" main(String[] args) {
/spanspan style="color: #008080;" 14/span System.out.println(Uid2Mid("Aw8Wrzaes"span style="color: #000000;"));
/spanspan style="color: #008080;" 15/span System.out.println(Mid2Uid("3676608718380816"));span style="color: #008000;"///spanspan style="color: #008000;"Mid2Id/span
span style="color: #008080;" 16/span span style="color: #000000;" }
/spanspan style="color: #008080;" 17/span span style="color: #0000ff;"private/span span style="color: #0000ff;"static/span String[] str62keys = { "0", "1", "2", "3", "4", "5", "6"span style="color: #000000;",
/spanspan style="color: #008080;" 18/span "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j"span style="color: #000000;",
/spanspan style="color: #008080;" 19/span "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w"span style="color: #000000;",
/spanspan style="color: #008080;" 20/span "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J"span style="color: #000000;",
/spanspan style="color: #008080;" 21/span "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W"span style="color: #000000;",
/spanspan style="color: #008080;" 22/span "X", "Y", "Z"span style="color: #000000;" };
/spanspan style="color: #008080;" 23/span
span style="color: #008080;" 24/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/spanspan style="color: #000000;" String IntToEnode62(Integer int10) {
/spanspan style="color: #008080;" 25/span String s62 = ""span style="color: #000000;";
/spanspan style="color: #008080;" 26/span span style="color: #0000ff;"int/span r = 0span style="color: #000000;";
/spanspan style="color: #008080;" 27/span span style="color: #0000ff;"while/span (int10 != 0span style="color: #000000;") {
/spanspan style="color: #008080;" 28/span r = int10 % 62span style="color: #000000;";
/spanspan style="color: #008080;" 29/span s62 = str62keys[r] +span style="color: #000000;" s62;
/spanspan style="color: #008080;" 30/span int10 = (span style="color: #0000ff;"int/span) Math.floor(int10 / 62.0span style="color: #000000;");
/spanspan style="color: #008080;" 31/span span style="color: #000000;" }
/spanspan style="color: #008080;" 32/span span style="color: #0000ff;"return/spanspan style="color: #000000;" s62;
/spanspan style="color: #008080;" 33/span span style="color: #000000;" }
/spanspan style="color: #008080;" 34/span
span style="color: #008080;" 35/span span style="color: #008000;"///spanspan style="color: #008000;"62进制转成10进制/span
span style="color: #008080;" 36/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/spanspan style="color: #000000;" String Str62toInt(String str62)
/spanspan style="color: #008080;" 37/span span style="color: #000000;" {
/spanspan style="color: #008080;" 38/span span style="color: #0000ff;"long/span i64 = 0span style="color: #000000;";
/spanspan style="color: #008080;" 39/span span style="color: #0000ff;"for/span (span style="color: #0000ff;"int/span i = 0; i < str62.length(); i++span style="color: #000000;")
/spanspan style="color: #008080;" 40/span span style="color: #000000;" {
/spanspan style="color: #008080;" 41/span span style="color: #0000ff;"long/span Vi = (span style="color: #0000ff;"long/span)Math.pow(62, (str62.length() - i - 1span style="color: #000000;"));
/spanspan style="color: #008080;" 42/span String t = str62.substring(i,i+1span style="color: #000000;");
/spanspan style="color: #008080;" 43/span
span style="color: #008080;" 44/span i64 += Vi *span style="color: #000000;" findindex(t);
/spanspan style="color: #008080;" 45/span span style="color: #000000;" }
/spanspan style="color: #008080;" 46/span span style="color: #008000;"///spanspan style="color: #008000;" System.out.println(i64);/span
span style="color: #008080;" 47/span span style="color: #0000ff;"return/spanspan style="color: #000000;" Long.toString(i64);
/spanspan style="color: #008080;" 48/span span style="color: #000000;" }
/spanspan style="color: #008080;" 49/span
span style="color: #008080;" 50/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/span span style="color: #0000ff;"int/spanspan style="color: #000000;" findindex(String t)
/spanspan style="color: #008080;" 51/span span style="color: #000000;" {
/spanspan style="color: #008080;" 52/span span style="color: #0000ff;"int/span index=0span style="color: #000000;";
/spanspan style="color: #008080;" 53/span span style="color: #0000ff;"for/span(span style="color: #0000ff;"int/span i=0;istr62keys.length;i++span style="color: #000000;")
/spanspan style="color: #008080;" 54/span span style="color: #000000;" {
/spanspan style="color: #008080;" 55/span span style="color: #0000ff;"if/spanspan style="color: #000000;"(str62keys[i].equals(t)){
/spanspan style="color: #008080;" 56/span index=span style="color: #000000;"i;
/spanspan style="color: #008080;" 57/span span style="color: #0000ff;"break/spanspan style="color: #000000;";
/spanspan style="color: #008080;" 58/span span style="color: #000000;" }
/spanspan style="color: #008080;" 59/span span style="color: #000000;" }
/spanspan style="color: #008080;" 60/span span style="color: #0000ff;"return/spanspan style="color: #000000;" index;
/spanspan style="color: #008080;" 61/span span style="color: #000000;" }
/spanspan style="color: #008080;" 62/span
span style="color: #008080;" 63/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/spanspan style="color: #000000;" String Uid2Mid(String mid)
/spanspan style="color: #008080;" 64/span span style="color: #000000;" {
/spanspan style="color: #008080;" 65/span String id = ""span style="color: #000000;";
/spanspan style="color: #008080;" 66/span span style="color: #0000ff;"for/span (span style="color: #0000ff;"int/span i = mid.length() - 4; i -4; i = i - 4) span style="color: #008000;"///spanspan style="color: #008000;"从最后往前以4字节为一组读取URL字符/span
span style="color: #008080;" 67/span span style="color: #000000;" {
/spanspan style="color: #008080;" 68/span span style="color: #0000ff;"int/span offset1 = i < 0 ? 0span style="color: #000000;" : i;
/spanspan style="color: #008080;" 69/span span style="color: #0000ff;"int/span len = i < 0 ? mid.length() % 4 : 4span style="color: #000000;";
/spanspan style="color: #008080;" 70/span
span style="color: #008080;" 71/span String str = mid.substring(offset1, offset1+span style="color: #000000;"len);
/spanspan style="color: #008080;" 72/span span style="color: #008000;"///spanspan style="color: #008000;" System.out.println(offset1+" "+len+" "+str);/span
span style="color: #008080;" 73/span
span style="color: #008080;" 74/span str =span style="color: #000000;" Str62toInt(str);
/spanspan style="color: #008080;" 75/span
span style="color: #008080;" 76/span span style="color: #0000ff;"if/span (offset1 > 0) //若不是第一组,则不足7位补0
77 {
78 while (str.length() < 7)
79 {
80 str = "0" + str;
81 }
82 }
83 id = str + id;
84 }
85
86 return id;
87 }
88
89
90 public static String Mid2Uid(String str10) {
91 String mid = "";
92 int count = 1 ;
93 for (int i = str10.length() - 7; i > -7; i = i - 7) // 从最后往前以7字节为一组读取字符
94 {
95 int offset = i < 0 ? 0 : i;
96 int len = i < 0 ? str10.length() % 7 : 7;
97 String temp = str10.substring(offset, offset + len);
98 String url =IntToEnode62(Integer.valueOf(temp));
99 if(count!=3){//z xghm uXym 生成的链接从右往左的前2组,4位一组,不足4位的补0
100 for(int j=0;j
从WordPress微博同步插件第一个版本的强势来袭,你准备好了吗?
网站优化 • 优采云 发表了文章 • 0 个评论 • 65 次浏览 • 2021-08-15 03:20
这个插件简单实用。您可以在 WordPress 中发布文章 自动发送新浪微博(带有精选图片)。不得不说市面上的同步插件很多,但是都太臃肿或者添加了很多不切实际的第三方功能,作为一个追求极致的博主,这是一种煎熬,我们需要的很简单和实用。插件提供后台设置菜单,也可以拥有自己的微博尾巴,但需要自己在微博开放平台申请Appkey。
声明:由于微博开放平台接口和权限问题,凡力微博V3.1将不再支持早期创建的“微连接-连接网站”微博应用,请通过微博开放平台创建一个“微连接-web应用”,并添加设置应用的安全域名和回调地址,应用必须通过审核,否则插件将无法同步!请注意!
WordPress微博同步插件第一个版本发布已经一年多了,已经有数百个网站使用了。它也经历了几次版本升级和变化,但总有不尽人意的地方。这一次,V2.0版WordPress微博同步插件来了。插件再次进行了深度升级和开发,更换了插件的各种功能和数据存储方式。同时,插件正式命名为“Fanly微博”,保持原有风格,尽可能完美。
简单的背景设置
完美的同步效果
如何使用
安装方法和普通的WordPress插件一样。你可以直接通过WordPress后台在线上传安装这个插件,也可以解压上传到WordPress程序的“/wp-content/plugins/”,然后在后台插件菜单中启用“Micro”。 “博客同步”,最后在设置菜单的“微博同步”中填写微博开放平台申请的Appkey和自己的微博。
如有任何问题,请直接联系作者,或在本页留言。我们及时为您提供售后服务。
更新记录
1.0 版本:实现微博同步功能。
1.1 版本:实现后台菜单设置。
1.2 版本:实现文章中图片的同步。
1.3 版本:实现文章特色图片优先同步功能。
1.4 版本:通过微博Token实现微博同步,实现稳定同步。
范利微博V2.0版去掉了插件原有的数据写入方式,使用数组方式保存后台设置,重写功能兼容性问题,支持WordPress汇总支持文章首段内容同步去除同步内容包装等格式,加入Fanly插件系列。插件正式命名为:范利微博范利微博V2.1 版本优化回调获取方法授权回调页面地址获取范利微博V3.0 版本升级微博最新同步界面 删除旧版界面范利微博V 3. 1版本新增发布选项,新增视图同步微博功能,新增插件重置功能,全面支持微连接-web应用不再支持微连接-网站Fanly微博V3.2版本支持自定义文章类型同步优化同步设置,需要重置插件,添加设置页面,新版本更新提示,其他细节优化调整,凡力微博V3.3版本增加微博延迟同步功能优化插件同步逻辑优化插件更新提示别人说到你看不懂的细节,调整范力微博V3.4。修复部分PHP版本无法同步图片的情况。修复插件更新提醒。提示:服务器必须支持 curl
Fanly 微博V3.4.1 版本:调整延迟同步选项的判断规则
范利微博V3.5版本延时功能支持自定义定时同步到微博同步失败提示错误信息支持同步站点名称范利微博V3.6版本支持WordPress 5.0+新版块编辑器添加定位模块选择功能 添加自定义延迟时间开关,增强数据判断减少冗余(建议关闭默认同步选项)优化插件同步规则
说明:凡力微博V3.6版本后,价格调整为88元,已购买的用户可免费升级下载最新版本。
粉丝微博V3.6.1版本:修复同步成功后再次更新文章时清除同步状态的问题
使用步骤
Fanly微博微博同步插件使用教程(必看):
1.购买并通过雷雪建站平台下载最新版本的插件;
2.通过WordPress后台插件禁用和删除插件(新购买者请跳过);
3.通过FTP解压上传插件文件到“wp-content/plugins”目录,或者通过WordPress后台插件上传安装;
4.通过后台插件菜单启用插件;
5.通过启用的插件点击插件设置,或者通过WordPress设置菜单找到插件设置面板;
6.然后填写在微博开放平台申请的AppKey和AppSecret并保存;
7.点击“获取Token”,登录需要同步的微博账号,并保存;
8.如需修改同步微博账号,请先删除并保存token,然后重复上一步获取token。
使用提示:如果同步失败,请删除Token并保存,重新获取Token,或者禁用和启用插件一次。
付费资源
购买须知:是否适用请自行确定,虚拟物品不支持退换货!
资源价格:88CNY
泪雪提示:需要先登录才能购买资源
隐藏内容:资源收录隐藏内容,购买后可见! 查看全部
从WordPress微博同步插件第一个版本的强势来袭,你准备好了吗?
这个插件简单实用。您可以在 WordPress 中发布文章 自动发送新浪微博(带有精选图片)。不得不说市面上的同步插件很多,但是都太臃肿或者添加了很多不切实际的第三方功能,作为一个追求极致的博主,这是一种煎熬,我们需要的很简单和实用。插件提供后台设置菜单,也可以拥有自己的微博尾巴,但需要自己在微博开放平台申请Appkey。
声明:由于微博开放平台接口和权限问题,凡力微博V3.1将不再支持早期创建的“微连接-连接网站”微博应用,请通过微博开放平台创建一个“微连接-web应用”,并添加设置应用的安全域名和回调地址,应用必须通过审核,否则插件将无法同步!请注意!

WordPress微博同步插件第一个版本发布已经一年多了,已经有数百个网站使用了。它也经历了几次版本升级和变化,但总有不尽人意的地方。这一次,V2.0版WordPress微博同步插件来了。插件再次进行了深度升级和开发,更换了插件的各种功能和数据存储方式。同时,插件正式命名为“Fanly微博”,保持原有风格,尽可能完美。
简单的背景设置

完美的同步效果

如何使用
安装方法和普通的WordPress插件一样。你可以直接通过WordPress后台在线上传安装这个插件,也可以解压上传到WordPress程序的“/wp-content/plugins/”,然后在后台插件菜单中启用“Micro”。 “博客同步”,最后在设置菜单的“微博同步”中填写微博开放平台申请的Appkey和自己的微博。
如有任何问题,请直接联系作者,或在本页留言。我们及时为您提供售后服务。
更新记录
1.0 版本:实现微博同步功能。
1.1 版本:实现后台菜单设置。
1.2 版本:实现文章中图片的同步。
1.3 版本:实现文章特色图片优先同步功能。
1.4 版本:通过微博Token实现微博同步,实现稳定同步。
范利微博V2.0版去掉了插件原有的数据写入方式,使用数组方式保存后台设置,重写功能兼容性问题,支持WordPress汇总支持文章首段内容同步去除同步内容包装等格式,加入Fanly插件系列。插件正式命名为:范利微博范利微博V2.1 版本优化回调获取方法授权回调页面地址获取范利微博V3.0 版本升级微博最新同步界面 删除旧版界面范利微博V 3. 1版本新增发布选项,新增视图同步微博功能,新增插件重置功能,全面支持微连接-web应用不再支持微连接-网站Fanly微博V3.2版本支持自定义文章类型同步优化同步设置,需要重置插件,添加设置页面,新版本更新提示,其他细节优化调整,凡力微博V3.3版本增加微博延迟同步功能优化插件同步逻辑优化插件更新提示别人说到你看不懂的细节,调整范力微博V3.4。修复部分PHP版本无法同步图片的情况。修复插件更新提醒。提示:服务器必须支持 curl
Fanly 微博V3.4.1 版本:调整延迟同步选项的判断规则
范利微博V3.5版本延时功能支持自定义定时同步到微博同步失败提示错误信息支持同步站点名称范利微博V3.6版本支持WordPress 5.0+新版块编辑器添加定位模块选择功能 添加自定义延迟时间开关,增强数据判断减少冗余(建议关闭默认同步选项)优化插件同步规则
说明:凡力微博V3.6版本后,价格调整为88元,已购买的用户可免费升级下载最新版本。
粉丝微博V3.6.1版本:修复同步成功后再次更新文章时清除同步状态的问题
使用步骤
Fanly微博微博同步插件使用教程(必看):
1.购买并通过雷雪建站平台下载最新版本的插件;
2.通过WordPress后台插件禁用和删除插件(新购买者请跳过);
3.通过FTP解压上传插件文件到“wp-content/plugins”目录,或者通过WordPress后台插件上传安装;
4.通过后台插件菜单启用插件;
5.通过启用的插件点击插件设置,或者通过WordPress设置菜单找到插件设置面板;
6.然后填写在微博开放平台申请的AppKey和AppSecret并保存;
7.点击“获取Token”,登录需要同步的微博账号,并保存;
8.如需修改同步微博账号,请先删除并保存token,然后重复上一步获取token。
使用提示:如果同步失败,请删除Token并保存,重新获取Token,或者禁用和启用插件一次。
付费资源
购买须知:是否适用请自行确定,虚拟物品不支持退换货!
资源价格:88CNY
泪雪提示:需要先登录才能购买资源
隐藏内容:资源收录隐藏内容,购买后可见!
1.:OAUth认证方式比于BaseOAuthOAuth的认证资料比较少
网站优化 • 优采云 发表了文章 • 0 个评论 • 96 次浏览 • 2021-08-14 04:26
由于 Twitter 近期只支持 OAuth 认证方式,各大应用纷纷转向 OAuth 认证方式,新浪微博开放平台也将在近期停止 Base OAuth 认证方式。
为了继续使用新浪微博的开放平台,我开始研究OAuth认证方式。经过一段时间的实践,对新浪微博开放平台的OAuth认证方式有了一定的体会。鉴于网上这个平台的OAuth相关资料比较少,在这里分享一下过程中积累的经验,希望能帮助到一些想使用OAuth认证的人调用新浪微博界面~ ~
1.关于 OAuth:
OAUth认证方式相比Base OAuth认证方式最大的特点是应用端不需要保存用户的账号和密码,只需要用户授权的Key和Secret组合即可使用平台上的接口资源进行访问,在传输过程中,也可以通过截包分析,防止恶意人员获取用户的账号和密码。 (有一种说法,推特之所以完全切换到OAuth认证,是为了防止GFW通过截包的方式获取一些相关名人的账号和密码)。具体定义可以阅读OAuth规范定义:OAuth规范。
2.新浪微博开放平台:
新浪微博开放平台的基本界面、参数、返回格式参考推特模型。当然,国内其他一些开放平台也大量借鉴了推特的模式,所以基本是一样的。要使用新浪微博的开放平台,当然要先到其网站注册:新浪微博API。
注册后,会得到两个关键字段Consumer Key和Consumer Secret。保存它们。
新浪微博的开发平台有足够的文档,可以快速调用这些接口。除了一些较难的接口,我们将在下面讨论。
3.使用 OAuth 到新浪:
要使用 OAuth,用户必须先获得授权。一般来说,授权流程如下:
(1)应用向新浪开发平台发送请求,获取未授权的Request Token和Request Secret。此时Request Secret暂时不用,请妥善保管。
(2)以上一步获取的Request Token为参数,引导用户浏览器跳转到新浪微博授权页面,用户进入该页面登录新浪微博进行token授权.如果你在(1)如果浏览器的回调地址已经设置到服务器中,用户的浏览器会被重定向到这个地址,并且会在地址中增加一个新的参数:oauth_verifier。这个参数会稍后使用并保存。
(3)OAuth,认证过程的最后一步,向服务器请求真实的Token,将(1)中获取的Request Token,Request Secret,2)中获取的oauth_verifier作为参数传递给新浪微博)博客服务器,服务器会返回真实的Access Token和Access Secret,新浪微博也会返回用户在新浪微博的userid,有了用户的Access Token和Access Secret,就可以自由方便的调用新浪开通了微博界面。
每次调用都必须收录 OAuth 身份验证信息。作为OAuth认证信息,添加到请求包中基本上有两种方式:
(1)最推荐的方法是使用HTTP Authorization Header。这个header的定义在RFC2617中定义。
例如:
Authorization: OAuth realm="http://photos.example.net/",
oauth_consumer_key="dpf43f3p2l4k3l03",
oauth_token="nnch734d00sl2jdk",
oauth_signature_method="HMAC-SHA1",
oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D",
oauth_timestamp="1191242096", oauth_nonce="kllo9940pd9333jh",
oauth_version="1.0"
(2)或者你可以使用参数传递的方法,把OAuth参数像普通参数一样放在Get的URL中,或者放在POST的body内容中,都是可以的,
但是,在某些特殊情况下,解决这个问题会比较困难。
4.OAuth 认证参数分析:
如上所示,正常的 OAuth 身份验证收录以下参数:
(1)oauth_consumer_key:这是新浪在注册时给你的conusmer key,纯文本传输
(2)oauth_token:这是用户完成OAuth认证后的Access Token。在OAuth认证的第三步,就是Request Token,第一步不需要这个参数
(3)oauth_signature_method:加密方法,提供HMAC-SHA1、RSA-SHA1、PLAINTEXT几种方法
(4)oauth_signature:所有参数的加密字符串,包括消费者秘密和访问秘密
(5)oauth_timestamp:请求的时间戳
(6)oauth_version:可选参数,基本设置为1.0,否则会报错。
(7)oauth_nonce:防止重复调用的随机值
5.OAuth上传图片的痛苦:
使用上面的方法,基本上所有的接口调用都可以解决。但是当你遇到上传图片等困难的请求时,你需要一些技巧。
新浪微博开放平台要求上传图片时使用multipart/form-data。但是,当定义 OAuth 协议时,Content-Type 被描述为 application/x-www-form-urlencoded。没有提到如何在 multipart/form-data 中使用它。
在新浪微博的开放平台上,基本上网上找不到任何地方提到通过OAuth上传图片。经过一夜的 Twitter 试验和学习,
终于找到解决办法了。
基本上,协议中没有规定的内容,必须由私营部门以更直观的方式解决。在新浪微博界面上传图片,必须使用multipart/form-data作为Content-Type,OAuth认证参数不能放在form-data中,必须通过Authorization Header进行处理。这时候就必须除了file参数之外,在这个界面,status是加到oauth的加密里面的,但是没有出现在Authorization Header里面,而是后面加到了fom-data中,这样图片可以正常上传,可以发布微博。通过这个简单又麻烦的方法,我终于可以安全的上传图片到新浪微博了。
6.last
到目前为止,我已经成功调用了新浪微博的大部分接口,并开始覆盖搜狐微博、网易微博等开放平台。希望通过这个文章,可以记录一些经验和教训。
7.参考资料
[RFC5849]E。哈默拉哈夫,埃德。 《OAuth 1.0 协议》,RFC5849
[RFC1867] E. Nebel,L. Masinter,“HTML 中基于表单的文件上传”,RFC1867
[RFC2616] Fielding,R.,Gettys,J,e "超文本传输协议 - HTTP/1.1", RFC2616
[RFC2617] Franks,J.“HTTP 身份验证:基本和摘要式访问身份验证”,RFC2617
新浪微博开放平台: 查看全部
1.:OAUth认证方式比于BaseOAuthOAuth的认证资料比较少
由于 Twitter 近期只支持 OAuth 认证方式,各大应用纷纷转向 OAuth 认证方式,新浪微博开放平台也将在近期停止 Base OAuth 认证方式。
为了继续使用新浪微博的开放平台,我开始研究OAuth认证方式。经过一段时间的实践,对新浪微博开放平台的OAuth认证方式有了一定的体会。鉴于网上这个平台的OAuth相关资料比较少,在这里分享一下过程中积累的经验,希望能帮助到一些想使用OAuth认证的人调用新浪微博界面~ ~
1.关于 OAuth:
OAUth认证方式相比Base OAuth认证方式最大的特点是应用端不需要保存用户的账号和密码,只需要用户授权的Key和Secret组合即可使用平台上的接口资源进行访问,在传输过程中,也可以通过截包分析,防止恶意人员获取用户的账号和密码。 (有一种说法,推特之所以完全切换到OAuth认证,是为了防止GFW通过截包的方式获取一些相关名人的账号和密码)。具体定义可以阅读OAuth规范定义:OAuth规范。
2.新浪微博开放平台:
新浪微博开放平台的基本界面、参数、返回格式参考推特模型。当然,国内其他一些开放平台也大量借鉴了推特的模式,所以基本是一样的。要使用新浪微博的开放平台,当然要先到其网站注册:新浪微博API。
注册后,会得到两个关键字段Consumer Key和Consumer Secret。保存它们。
新浪微博的开发平台有足够的文档,可以快速调用这些接口。除了一些较难的接口,我们将在下面讨论。
3.使用 OAuth 到新浪:

要使用 OAuth,用户必须先获得授权。一般来说,授权流程如下:
(1)应用向新浪开发平台发送请求,获取未授权的Request Token和Request Secret。此时Request Secret暂时不用,请妥善保管。
(2)以上一步获取的Request Token为参数,引导用户浏览器跳转到新浪微博授权页面,用户进入该页面登录新浪微博进行token授权.如果你在(1)如果浏览器的回调地址已经设置到服务器中,用户的浏览器会被重定向到这个地址,并且会在地址中增加一个新的参数:oauth_verifier。这个参数会稍后使用并保存。
(3)OAuth,认证过程的最后一步,向服务器请求真实的Token,将(1)中获取的Request Token,Request Secret,2)中获取的oauth_verifier作为参数传递给新浪微博)博客服务器,服务器会返回真实的Access Token和Access Secret,新浪微博也会返回用户在新浪微博的userid,有了用户的Access Token和Access Secret,就可以自由方便的调用新浪开通了微博界面。
每次调用都必须收录 OAuth 身份验证信息。作为OAuth认证信息,添加到请求包中基本上有两种方式:
(1)最推荐的方法是使用HTTP Authorization Header。这个header的定义在RFC2617中定义。
例如:
Authorization: OAuth realm="http://photos.example.net/",
oauth_consumer_key="dpf43f3p2l4k3l03",
oauth_token="nnch734d00sl2jdk",
oauth_signature_method="HMAC-SHA1",
oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D",
oauth_timestamp="1191242096", oauth_nonce="kllo9940pd9333jh",
oauth_version="1.0"
(2)或者你可以使用参数传递的方法,把OAuth参数像普通参数一样放在Get的URL中,或者放在POST的body内容中,都是可以的,
但是,在某些特殊情况下,解决这个问题会比较困难。
4.OAuth 认证参数分析:
如上所示,正常的 OAuth 身份验证收录以下参数:
(1)oauth_consumer_key:这是新浪在注册时给你的conusmer key,纯文本传输
(2)oauth_token:这是用户完成OAuth认证后的Access Token。在OAuth认证的第三步,就是Request Token,第一步不需要这个参数
(3)oauth_signature_method:加密方法,提供HMAC-SHA1、RSA-SHA1、PLAINTEXT几种方法
(4)oauth_signature:所有参数的加密字符串,包括消费者秘密和访问秘密
(5)oauth_timestamp:请求的时间戳
(6)oauth_version:可选参数,基本设置为1.0,否则会报错。
(7)oauth_nonce:防止重复调用的随机值
5.OAuth上传图片的痛苦:
使用上面的方法,基本上所有的接口调用都可以解决。但是当你遇到上传图片等困难的请求时,你需要一些技巧。
新浪微博开放平台要求上传图片时使用multipart/form-data。但是,当定义 OAuth 协议时,Content-Type 被描述为 application/x-www-form-urlencoded。没有提到如何在 multipart/form-data 中使用它。
在新浪微博的开放平台上,基本上网上找不到任何地方提到通过OAuth上传图片。经过一夜的 Twitter 试验和学习,
终于找到解决办法了。
基本上,协议中没有规定的内容,必须由私营部门以更直观的方式解决。在新浪微博界面上传图片,必须使用multipart/form-data作为Content-Type,OAuth认证参数不能放在form-data中,必须通过Authorization Header进行处理。这时候就必须除了file参数之外,在这个界面,status是加到oauth的加密里面的,但是没有出现在Authorization Header里面,而是后面加到了fom-data中,这样图片可以正常上传,可以发布微博。通过这个简单又麻烦的方法,我终于可以安全的上传图片到新浪微博了。
6.last
到目前为止,我已经成功调用了新浪微博的大部分接口,并开始覆盖搜狐微博、网易微博等开放平台。希望通过这个文章,可以记录一些经验和教训。
7.参考资料
[RFC5849]E。哈默拉哈夫,埃德。 《OAuth 1.0 协议》,RFC5849
[RFC1867] E. Nebel,L. Masinter,“HTML 中基于表单的文件上传”,RFC1867
[RFC2616] Fielding,R.,Gettys,J,e "超文本传输协议 - HTTP/1.1", RFC2616
[RFC2617] Franks,J.“HTTP 身份验证:基本和摘要式访问身份验证”,RFC2617
新浪微博开放平台:
Twitter申请API试用权限注册在开放平台登录后可以看到的界面如下
网站优化 • 优采云 发表了文章 • 0 个评论 • 112 次浏览 • 2021-08-14 04:18
Twitter申请API试用权限注册在开放平台登录后可以看到的界面如下
新浪微博开放平台介绍 新浪微博开放平台的系统是指推特。两者非常相似,包括接口参数的定义请求方法等。如果你熟悉Twitter的API,基本上可以同时应用于新浪微博开放平台本文档技术部分的信息可以也适用于推特新浪微博开放平台网站为目前只有部分页面对匿名用户开放。新浪微博开放平台官方微博供您在这里申请API试用权限。在 Open 中注册 登录平台后可以看到的界面如下图所示。您可以选择创建应用程序。需要设置应用名称、应用地址等,创建后可以在我的应用菜单中看到应用和用户数。系统将为该应用程序分配一个 APPKEY 和 APPSECRET。这两个字符串非常重要,将在以后的身份验证或信息交换中使用。应用的详细信息页面分为多个授权级别。分为普通授权、中级授权、高级授权、合作伙伴授权。您可以在此处查看详细的权限。信息使用伙伴授权没有请求限制,普通授权可能会不小心造成ServerLimit。开放认证平台上有两种认证方式。一个是 BasicAuth,另一个是 OAuthHTTPAuth1BasicAuthBasicAuth。简单的解释是每次请求API时都会提供用户。用户名和密码如 curl-uuserpassword-dquotsource10001ampstatusapitestquot 这种方法的优缺点显而易见。优点是使用起来非常简单。开发调试工作简单。没有复杂的页面跳转逻辑和交互过程。更有利于发起者控制。缺点。安全性低。传递用户名和密码 用户名和密码在很大程度上可能会被监控和窃取。同时,应用程序需要在本地保存用户名和密码。应用本身的安全性也存在较大问题。开放平台服务商是出于自身的安全考虑。考虑到第三方可以获取服务提供商用户的账户密码,这对服务提供商来说是一种安全风险。这种身份验证方法将来也将受到限制。 Twitter 计划规划一个完整的创业计划。教育商业计划。商业计划。医疗项目计划。股权融资。项目计划将于 6 月停止对 BasicAuth 的支持。如果用户更改了用户名和密码,则需要重新检查密码。 2OAuthOAuth为用户资源的授权提供了安全、开放的标准,未来开发平台将普遍遵循。目前Twitter新浪微博、豆瓣、谷歌等都对其提供支持。它分为几个交互过程。 1 应用将 APPKEY 和 APPSECRET 交换为 OAuth_token 2 应用引导用户到服务商的页面授权 OAuth_token 可能需要输入用户名和密码 3 服务商的页面跳转回应用然后去服务商根据参数获取AccessTo
ken4 可以使用这个 AccessToken 来访问 API。上述过程如下图所示。 OAuth认证过程OAuth的优点是安全性高用户的账号和密码只需要提供一次,并在服务商页面提供,防止BasicAuth重复传输密码带来的安全隐患。令牌访问权限仅限于被盗应用程序,不会影响用户在服务提供商的其他服务。即使被监控丢失,也可以随时撤销。与可能被他人篡改的密码不同,用户不会更改密码。影响应用正常使用的具体OAuth分析在这个文章standard文档中有详细说明。新浪微博开放平台提供多种认证页面。例如下图为标准授权页面弹窗式授权页面开发开放平台API接口基本以RESTFUl的方式给出,统一参数和响应格式实际开发示例BasicAuth我会用到PHP和Perl两种方法OAuth我会使用PHP和Javascript两种方法并结合命令行给出一个全面的说明 1BasicAuth 用户认证 用户认证接口是Accountverifycredentialsjson 数据访问方式是curl-uuidpassworduid 可以是用户在新浪上的用户名或者用户号 结果通过命令行执行的方式如下: 命令行请求用户认证接口是PHP下面使用curl请求这个接口代码示例username_POST[„username]password_POST[„password]paramvalidatecurlcurl_initcurl_setoptcurlCURLOPT_URLquotcurl_setoptcurlCURLOPT_RETURNTRANSFER1curl_setoptcurlWDURLcurl_USER_USER l_curl,如果可以使用下面的命令实现WCurl_close_curl_curl_curl_curl_curl_curl_curl或者WCurl_close_curl_curl_curl_curl,可以使用下面的命令实现WCurl_setoptcurlCURLOPT_USERPWDcurl'dcount3-dsince_dsince_user_id'个人信息,如果认证成功,就会返回userid信息。如果认证失败,会返回ltxmlversionquot10quotencodingquotUTF-8quotgtlthashgtltrequestgtaccountverify_c等错误信息
redentialsxmlltrequestgtlterror_codegt400lterror_codegtlterrorgtErrorsourceparamterappkeyismissinglterrorgtlthashgt2BasicAuth的好友消息获取好友消息获取是最常用的函数之一,用于获取您关注的用户的最新消息列表。 API的主要参数包括since_idmax_idcountpage,since_id是常用的消息数,since_id是取自开始的消息数,如果要做增量更新功能,可以记录每条最新消息的id时间,然后使用这条消息的id作为since_id通过命令行请求接口如下图。在返回的json数据中获取消息的结果如下:quotfollowersquot5quotdmquotmentionsquot1quotcommentsquot24OAuth方法用PHP开发OAuth新浪微博应用其实比较简单,因为开放平台提供了SDK供开发者使用,看地址,但是在例子中,使用_ SERVER[SCRIPT_URI] 可能有问题。您需要使用 HTTP_HOST 和 REQUEST_URI 来构建完整路径。这里主要想介绍一下新浪微博在本地应用模式下基于HTML和Javascript的应用。以傲游浏览器插件的实现为例。有几个问题需要解决。一、Ajax跨域问题。当我们通过Javascript从本地请求新浪微博API时,它们都是跨域解决方案。 1 使用 PHP 作为域访问代理。当然,这种方法并不是纯粹的本地化。应用 2 使用动态Script标签等Ajax跨域方法 3 如果是傲游插件,这不是问题,因为浏览器插件可以跨域访问远程地址。第二个加密算法问题。 OAuth 请求需要签名。需要算法。支持新浪微博开放平台的文档推荐使用HMAC-SHA1方式。 Node.js 有一个 sha1 库,它实现了常用的 SHA1 加密算法。使用里面的b64_hmac_sha1方法得到符合格式的签名。第三个页面跳转问题是在OAuth的过程中,第一步是从新浪用户授权页面跳转到应用的回调页面。这个过程对于本地应用程序是有问题的。以傲游浏览器为例,页面以本地文件的形式打开。文件 此页面不存在。网络上的地址所以
当文件开头的地址作为新浪用户授权页面的回调地址时,通过后台重定向。无法解析这个页面的地址,也不能跳转到对应的本地页面,也就是说这个页面必须在某个域名下。这个问题很难解决,而且从浏览器端修改成本太高。好在新浪微博授权API为不方便访问网页的应用提供了oauth_callback json方法,正好帮助我们解决了这个问题。应用程序的结构如下图所示。本地应用的体系结构配置页面用于账户授权或取消授权。点击账号授权跳转到登录页面。登录页面首先从request_tokenAPI获取未授权token,然后在用户输入用户名和密码后,将参数提交给authorizeAPI获取verifier。然后跳转到回调页面。回调页面基于验证者和token到access_tokenAPI获取授权token认证流程。令牌保存在本地cookies、本地文件浏览器账户配置等中,每次收到消息或发布消息时,都需要使用此令牌消息显示。通过定时刷新模式或增量更新页面更新用户信息Ajax页面获取request_token以下核心代码functionget_request_tokenvarparam_arr [quotoauth_consumer_keyquotoauth_consumer_keyquotoauth_noncequotoauth_noncequotoauth_signature_methodquotoauth_signature_methodquotoauth_timestampquotoauth_timestampquotoauth_versionquotoauth_version] base_stringoauth_methodquotampquotencodeURIComponentrequest_token_apiquotampquotencodeURIComponentparam_arrjoinquotampquotoauth_signatureb64_hmac_sha1app_secretquotampquotbase_stringquotquotargsquotoauth_consumer_keyquotencodeURIComponentoauth_consumer_keyquotampoauth _
noncequotencodeURIComponentoauth_noncequotampoauth_timestampquotencodeURIComponentoauth_timestampquotampoauth_signature_methodquotencodeURIComponentoauth_signature_methodquotampoauth_signaturequotencodeURIComponentoauth_signaturequotampoauth_versionquotencodeURIComponentoauth_versionLiteIOajaxGetrequest_token_proxyargsset_oauth_token_callback傲游塞的简单效果新浪微博如图开放平台的应用 - 傲游插件推的图,并抓住上述结构建设计划市场营销计划模板建筑施工程序施工解决方案施工组织设计的例子(构建方案)基于应用自身的爬取方式,需要定期进行,以实现新浪微博对应用的推送功能。根据新浪 ltphpspushnewServerPush „replacedisplaythemessagequotHellohowareyoutodayquotonewordatatimewithatwoseconddelaybetweenwordsspush-grotatearray„Hello„how„are„youtoday2gt others 我很好奇我研究了 SinaTwitter 的 Chrome 插件,惊讶地发现它没有使用任何新浪的 API。它完全基于页面抓取。这也是实现新浪微博插件的另一个思路。至于 Twitter 应用程序的实现,可以使用类twitterphp。类库已经封装了很多功能,但是还是有一些不完善的地方。我个人对其进行了一些改进。附上新浪微博开放API列表获取最新更新的公开微博新闻 statusfriends_timeline 获取用户的最新微博关注当前用户 信息别名 statushome_timelinestatusesuser_timeline 获取用户发布的微博信息列表statusmentions 获取微博列表当前用户statuscomments_timeline 获取当前用户发送和接收的评论列表 statuscomment_by_me获取当前用户发送的评论
评论状态comments 获取指定微博的评论列表statuscounts 批量获取一组微博的评论数和转发数 statussunread 获取当前用户的未读消息数 根据ID获取单个微博的信息userstatusid 根据微博ID和用户ID跳转到单个微博页面 statusesupdate 发微博 statusesupload 上传图片发微博 statusdestroy 删除微博 statusesrepost 转发微博可以给微博添加评论 statuscomment_destroy delete当前用户的微博评论信息状态回复微博评论信息根据用户ID获取用户资料授权用户状态好友获取当前用户的关注列表和最新的微博信息状态关注者获取当前用户的粉丝列表和最新的微博信息获取当前用户的最新信息私信列表 direct_messagessent 获取t当前用户 发送最新私信列表 direct_messagesnew 发送私信 direct_messages销毁私信 用户身份是否合法 accountrate_limit_status 获取当前用户API访问频率限制 accountend_session 当前用户登出 accountupdate_profile_image 更改个人资料图片 accountupdate_profile 更改个人资料帐户register 注册新浪微博account rites 获取当前用户的采集列表 添加采集的favoritesdestroy 删除当前用户采集的微博信息 授权方式介绍 oauthrequest_token 获取未授权 RequestTokenoauthauthorize 请求用户授权 Tokenoauthaccess_token 获取授权微博信息 用户个人资料信息 评论 评论信息 描述 direct_message 私信信息 省市代码表取自quotquot 查看全部
Twitter申请API试用权限注册在开放平台登录后可以看到的界面如下

新浪微博开放平台介绍 新浪微博开放平台的系统是指推特。两者非常相似,包括接口参数的定义请求方法等。如果你熟悉Twitter的API,基本上可以同时应用于新浪微博开放平台本文档技术部分的信息可以也适用于推特新浪微博开放平台网站为目前只有部分页面对匿名用户开放。新浪微博开放平台官方微博供您在这里申请API试用权限。在 Open 中注册 登录平台后可以看到的界面如下图所示。您可以选择创建应用程序。需要设置应用名称、应用地址等,创建后可以在我的应用菜单中看到应用和用户数。系统将为该应用程序分配一个 APPKEY 和 APPSECRET。这两个字符串非常重要,将在以后的身份验证或信息交换中使用。应用的详细信息页面分为多个授权级别。分为普通授权、中级授权、高级授权、合作伙伴授权。您可以在此处查看详细的权限。信息使用伙伴授权没有请求限制,普通授权可能会不小心造成ServerLimit。开放认证平台上有两种认证方式。一个是 BasicAuth,另一个是 OAuthHTTPAuth1BasicAuthBasicAuth。简单的解释是每次请求API时都会提供用户。用户名和密码如 curl-uuserpassword-dquotsource10001ampstatusapitestquot 这种方法的优缺点显而易见。优点是使用起来非常简单。开发调试工作简单。没有复杂的页面跳转逻辑和交互过程。更有利于发起者控制。缺点。安全性低。传递用户名和密码 用户名和密码在很大程度上可能会被监控和窃取。同时,应用程序需要在本地保存用户名和密码。应用本身的安全性也存在较大问题。开放平台服务商是出于自身的安全考虑。考虑到第三方可以获取服务提供商用户的账户密码,这对服务提供商来说是一种安全风险。这种身份验证方法将来也将受到限制。 Twitter 计划规划一个完整的创业计划。教育商业计划。商业计划。医疗项目计划。股权融资。项目计划将于 6 月停止对 BasicAuth 的支持。如果用户更改了用户名和密码,则需要重新检查密码。 2OAuthOAuth为用户资源的授权提供了安全、开放的标准,未来开发平台将普遍遵循。目前Twitter新浪微博、豆瓣、谷歌等都对其提供支持。它分为几个交互过程。 1 应用将 APPKEY 和 APPSECRET 交换为 OAuth_token 2 应用引导用户到服务商的页面授权 OAuth_token 可能需要输入用户名和密码 3 服务商的页面跳转回应用然后去服务商根据参数获取AccessTo

ken4 可以使用这个 AccessToken 来访问 API。上述过程如下图所示。 OAuth认证过程OAuth的优点是安全性高用户的账号和密码只需要提供一次,并在服务商页面提供,防止BasicAuth重复传输密码带来的安全隐患。令牌访问权限仅限于被盗应用程序,不会影响用户在服务提供商的其他服务。即使被监控丢失,也可以随时撤销。与可能被他人篡改的密码不同,用户不会更改密码。影响应用正常使用的具体OAuth分析在这个文章standard文档中有详细说明。新浪微博开放平台提供多种认证页面。例如下图为标准授权页面弹窗式授权页面开发开放平台API接口基本以RESTFUl的方式给出,统一参数和响应格式实际开发示例BasicAuth我会用到PHP和Perl两种方法OAuth我会使用PHP和Javascript两种方法并结合命令行给出一个全面的说明 1BasicAuth 用户认证 用户认证接口是Accountverifycredentialsjson 数据访问方式是curl-uuidpassworduid 可以是用户在新浪上的用户名或者用户号 结果通过命令行执行的方式如下: 命令行请求用户认证接口是PHP下面使用curl请求这个接口代码示例username_POST[„username]password_POST[„password]paramvalidatecurlcurl_initcurl_setoptcurlCURLOPT_URLquotcurl_setoptcurlCURLOPT_RETURNTRANSFER1curl_setoptcurlWDURLcurl_USER_USER l_curl,如果可以使用下面的命令实现WCurl_close_curl_curl_curl_curl_curl_curl_curl或者WCurl_close_curl_curl_curl_curl,可以使用下面的命令实现WCurl_setoptcurlCURLOPT_USERPWDcurl'dcount3-dsince_dsince_user_id'个人信息,如果认证成功,就会返回userid信息。如果认证失败,会返回ltxmlversionquot10quotencodingquotUTF-8quotgtlthashgtltrequestgtaccountverify_c等错误信息

redentialsxmlltrequestgtlterror_codegt400lterror_codegtlterrorgtErrorsourceparamterappkeyismissinglterrorgtlthashgt2BasicAuth的好友消息获取好友消息获取是最常用的函数之一,用于获取您关注的用户的最新消息列表。 API的主要参数包括since_idmax_idcountpage,since_id是常用的消息数,since_id是取自开始的消息数,如果要做增量更新功能,可以记录每条最新消息的id时间,然后使用这条消息的id作为since_id通过命令行请求接口如下图。在返回的json数据中获取消息的结果如下:quotfollowersquot5quotdmquotmentionsquot1quotcommentsquot24OAuth方法用PHP开发OAuth新浪微博应用其实比较简单,因为开放平台提供了SDK供开发者使用,看地址,但是在例子中,使用_ SERVER[SCRIPT_URI] 可能有问题。您需要使用 HTTP_HOST 和 REQUEST_URI 来构建完整路径。这里主要想介绍一下新浪微博在本地应用模式下基于HTML和Javascript的应用。以傲游浏览器插件的实现为例。有几个问题需要解决。一、Ajax跨域问题。当我们通过Javascript从本地请求新浪微博API时,它们都是跨域解决方案。 1 使用 PHP 作为域访问代理。当然,这种方法并不是纯粹的本地化。应用 2 使用动态Script标签等Ajax跨域方法 3 如果是傲游插件,这不是问题,因为浏览器插件可以跨域访问远程地址。第二个加密算法问题。 OAuth 请求需要签名。需要算法。支持新浪微博开放平台的文档推荐使用HMAC-SHA1方式。 Node.js 有一个 sha1 库,它实现了常用的 SHA1 加密算法。使用里面的b64_hmac_sha1方法得到符合格式的签名。第三个页面跳转问题是在OAuth的过程中,第一步是从新浪用户授权页面跳转到应用的回调页面。这个过程对于本地应用程序是有问题的。以傲游浏览器为例,页面以本地文件的形式打开。文件 此页面不存在。网络上的地址所以

当文件开头的地址作为新浪用户授权页面的回调地址时,通过后台重定向。无法解析这个页面的地址,也不能跳转到对应的本地页面,也就是说这个页面必须在某个域名下。这个问题很难解决,而且从浏览器端修改成本太高。好在新浪微博授权API为不方便访问网页的应用提供了oauth_callback json方法,正好帮助我们解决了这个问题。应用程序的结构如下图所示。本地应用的体系结构配置页面用于账户授权或取消授权。点击账号授权跳转到登录页面。登录页面首先从request_tokenAPI获取未授权token,然后在用户输入用户名和密码后,将参数提交给authorizeAPI获取verifier。然后跳转到回调页面。回调页面基于验证者和token到access_tokenAPI获取授权token认证流程。令牌保存在本地cookies、本地文件浏览器账户配置等中,每次收到消息或发布消息时,都需要使用此令牌消息显示。通过定时刷新模式或增量更新页面更新用户信息Ajax页面获取request_token以下核心代码functionget_request_tokenvarparam_arr [quotoauth_consumer_keyquotoauth_consumer_keyquotoauth_noncequotoauth_noncequotoauth_signature_methodquotoauth_signature_methodquotoauth_timestampquotoauth_timestampquotoauth_versionquotoauth_version] base_stringoauth_methodquotampquotencodeURIComponentrequest_token_apiquotampquotencodeURIComponentparam_arrjoinquotampquotoauth_signatureb64_hmac_sha1app_secretquotampquotbase_stringquotquotargsquotoauth_consumer_keyquotencodeURIComponentoauth_consumer_keyquotampoauth _

noncequotencodeURIComponentoauth_noncequotampoauth_timestampquotencodeURIComponentoauth_timestampquotampoauth_signature_methodquotencodeURIComponentoauth_signature_methodquotampoauth_signaturequotencodeURIComponentoauth_signaturequotampoauth_versionquotencodeURIComponentoauth_versionLiteIOajaxGetrequest_token_proxyargsset_oauth_token_callback傲游塞的简单效果新浪微博如图开放平台的应用 - 傲游插件推的图,并抓住上述结构建设计划市场营销计划模板建筑施工程序施工解决方案施工组织设计的例子(构建方案)基于应用自身的爬取方式,需要定期进行,以实现新浪微博对应用的推送功能。根据新浪 ltphpspushnewServerPush „replacedisplaythemessagequotHellohowareyoutodayquotonewordatatimewithatwoseconddelaybetweenwordsspush-grotatearray„Hello„how„are„youtoday2gt others 我很好奇我研究了 SinaTwitter 的 Chrome 插件,惊讶地发现它没有使用任何新浪的 API。它完全基于页面抓取。这也是实现新浪微博插件的另一个思路。至于 Twitter 应用程序的实现,可以使用类twitterphp。类库已经封装了很多功能,但是还是有一些不完善的地方。我个人对其进行了一些改进。附上新浪微博开放API列表获取最新更新的公开微博新闻 statusfriends_timeline 获取用户的最新微博关注当前用户 信息别名 statushome_timelinestatusesuser_timeline 获取用户发布的微博信息列表statusmentions 获取微博列表当前用户statuscomments_timeline 获取当前用户发送和接收的评论列表 statuscomment_by_me获取当前用户发送的评论

评论状态comments 获取指定微博的评论列表statuscounts 批量获取一组微博的评论数和转发数 statussunread 获取当前用户的未读消息数 根据ID获取单个微博的信息userstatusid 根据微博ID和用户ID跳转到单个微博页面 statusesupdate 发微博 statusesupload 上传图片发微博 statusdestroy 删除微博 statusesrepost 转发微博可以给微博添加评论 statuscomment_destroy delete当前用户的微博评论信息状态回复微博评论信息根据用户ID获取用户资料授权用户状态好友获取当前用户的关注列表和最新的微博信息状态关注者获取当前用户的粉丝列表和最新的微博信息获取当前用户的最新信息私信列表 direct_messagessent 获取t当前用户 发送最新私信列表 direct_messagesnew 发送私信 direct_messages销毁私信 用户身份是否合法 accountrate_limit_status 获取当前用户API访问频率限制 accountend_session 当前用户登出 accountupdate_profile_image 更改个人资料图片 accountupdate_profile 更改个人资料帐户register 注册新浪微博account rites 获取当前用户的采集列表 添加采集的favoritesdestroy 删除当前用户采集的微博信息 授权方式介绍 oauthrequest_token 获取未授权 RequestTokenoauthauthorize 请求用户授权 Tokenoauthaccess_token 获取授权微博信息 用户个人资料信息 评论 评论信息 描述 direct_message 私信信息 省市代码表取自quotquot
使用新浪微博开放平台api同步微博内容至自己网站 E9%A6%E9A1%A1-
网站优化 • 优采云 发表了文章 • 0 个评论 • 51 次浏览 • 2021-08-13 22:06
关于新浪微博开放平台的问题很多。网上的文档不是很清楚,授权机制难倒我。我不知道发生了什么,我一直在报告我没有获得许可。我没有回复给开发者的电子邮件。
偶尔尝试一个方法States并返回成功。以下代码:
1.quoted in head
2.Javascript 媒体
$(function(){
WB2.anyWhere(function(W){
W.parseCMD("/statuses/home_timeline.json?user_id=2922998432", function(sResult, bStatus){
if(bStatus == true) {
alert(sResult);
}
},{},{
method: 'get'
});
});
})
这里的 User_id 是您自己的 Userid。如果您不知道,请在您自己的微博上查看,或者到百度搜索如何查看您的用户名。这里就不详细解释了。
如果成功,会弹出对象类型sResult。您可以根据需要调试并获取内容; parseCMD的第一个参数是接口,接口的详细信息可以在新浪微博开放平台的API中找到,看你需要什么%E9%A6%96%E9%A1%B5
-----似乎所有的新浪微博界面都不支持POST,但是默认提交的仍然是POST方式:'GET'是必须的, 查看全部
使用新浪微博开放平台api同步微博内容至自己网站 E9%A6%E9A1%A1-
关于新浪微博开放平台的问题很多。网上的文档不是很清楚,授权机制难倒我。我不知道发生了什么,我一直在报告我没有获得许可。我没有回复给开发者的电子邮件。
偶尔尝试一个方法States并返回成功。以下代码:
1.quoted in head
2.Javascript 媒体
$(function(){
WB2.anyWhere(function(W){
W.parseCMD("/statuses/home_timeline.json?user_id=2922998432", function(sResult, bStatus){
if(bStatus == true) {
alert(sResult);
}
},{},{
method: 'get'
});
});
})
这里的 User_id 是您自己的 Userid。如果您不知道,请在您自己的微博上查看,或者到百度搜索如何查看您的用户名。这里就不详细解释了。
如果成功,会弹出对象类型sResult。您可以根据需要调试并获取内容; parseCMD的第一个参数是接口,接口的详细信息可以在新浪微博开放平台的API中找到,看你需要什么%E9%A6%96%E9%A1%B5
-----似乎所有的新浪微博界面都不支持POST,但是默认提交的仍然是POST方式:'GET'是必须的,
新浪微博API新特点与百度地图API相比,我理解
网站优化 • 优采云 发表了文章 • 0 个评论 • 80 次浏览 • 2021-08-13 21:15
查看 API 使用流程
通过百度地图API的使用,了解到API调用的大致流程是:生成API指定格式的url->通过urllib读取url中的数据->解析json格式的数据接下来开始研究新浪微博API的使用。
准备
新浪微博开放平台是一个使用新浪微博API的平台。使用微博账号登录平台后,申请成为开发者,创建新应用后将获得唯一的App Key和App Secret。 (注:申请不需要提交审核,只要新建一个申请系统,就会分配Key和Secret。)这两个信息也可以在“我的申请/申请信息/基本信息”中找到”。这个页面上还有一项“我的申请/申请信息/高级信息”。点击进入设置OAuth2.0授权回调页面的相关信息。如果不知道填写什么,可以设置为默认回调页面: 。后面需要这三个信息,请复制保存到文件中。
微博API新功能
相比百度地图API,新浪微博API增加了OAuth2.0协议进行用户认证和授权。这里只做一个简单的说明(感兴趣的同学可以参考网上的文档图):通过这个协议,第三方应用可以获取用户授权,然后使用license从授权服务器获取token,用于后续的查询API 服务器在数据时验证身份。
这个验证链接增加了url生成的复杂度。好在网站上已经有廖雪峰老师提供的SDK工具包:sinaweibopy(廖老师的github地址好像改名了,所以网上很多旧链接失效了,是新的有效链接) ,但是这个程序是基于python2环境编写的,python3的一些系统库发生了变化,调用程序时经常报错。作为一个python初学者,让程序适应python3环境无疑是困难的。幸运的是,一位伟大的上帝做了这项工作。感谢owolf为python3重写的SDK:sinaweibopy3。我用过,运行正常。你可以下载它。最详细的我也推荐owolf的文章全网:python3调用新浪微博API接口获取数据。
简单例子
先介绍一下新浪微博API的使用流程,供新人参考。
1.参数设置
导入sinaweibopy3
导入浏览器
导入json
APP_KEY ='填写您的应用密钥'
APP_SECRET='填写您的应用密钥'
REDIRECT_URL ='填写您的授权回调页面'
注意:
这个文件需要和sinaweibopy3.py放在同一个文件夹中。
填写的三项信息都是准备中提到的信息。
这里讲一个我粗心造成的bug,给大家提个醒。一开始,我运行程序时,每次都出现“重定向地址不匹配”的错误提示:
使用微博账号登录时出错!授权第三方应用程序时出错。请联系第三方应用的开发者:XXX 或稍后重试。
错误代码:21322 重定向地址不匹配
在网上找解决办法,需要设置回调页面,不过我在前面的步骤中已经设置好了。为什么我还是有这个问题?后来在文章看到一篇文章,提到回调页面地址要和程序中的REDIRECT_URL一致。我想到了程序示例,一开始使用http:。我看填的时候地址是一样的,所以没改。 网站上是https: 一开始,有's'的区别。当时还以为是地址,没想到和原来大不一样!
2.OAuth2.0 验证生成的url
client = sinaweibopy3.APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=REDIRECT_URL)
url = client.get_authorize_url()
webbrowser.open_new(url)
result = client.request_access_token(input("请输入代码:"))
client.set_access_token(result.access_token, result.expires_in)
注:这是在OAuth2.0中调用sinaweibopy3实现用户授权的过程->获取Token。当程序运行到client.request_access_token时,会弹出输入提示“请输入代码:”,询问代码?这是什么意思?打开浏览器,会看到出现OAuth2.0验证回调页面。地址栏中的'code='后面有一串字符。这就是我们想要的Token信息。复制粘贴进去,程序继续运行。
3.从 API 读取数据
运行以下代码读取公共微博数据并显示结果。
result=client.public_timeline()
print(json.dumps(result,indent=2,ensure_ascii=False))
通过查看数据结构,可以提取出具体的信息。例如,使用以下代码输出用户的微博昵称、位置和最新的微博文本。
number=result["total_number"]
print(number,"users:")
对于你的结果["statuses"]:
print(u["user"]["screen_name"])
print(u["user"]["location"])
print(u["text"])
高级 查看全部
新浪微博API新特点与百度地图API相比,我理解
查看 API 使用流程
通过百度地图API的使用,了解到API调用的大致流程是:生成API指定格式的url->通过urllib读取url中的数据->解析json格式的数据接下来开始研究新浪微博API的使用。
准备
新浪微博开放平台是一个使用新浪微博API的平台。使用微博账号登录平台后,申请成为开发者,创建新应用后将获得唯一的App Key和App Secret。 (注:申请不需要提交审核,只要新建一个申请系统,就会分配Key和Secret。)这两个信息也可以在“我的申请/申请信息/基本信息”中找到”。这个页面上还有一项“我的申请/申请信息/高级信息”。点击进入设置OAuth2.0授权回调页面的相关信息。如果不知道填写什么,可以设置为默认回调页面: 。后面需要这三个信息,请复制保存到文件中。
微博API新功能
相比百度地图API,新浪微博API增加了OAuth2.0协议进行用户认证和授权。这里只做一个简单的说明(感兴趣的同学可以参考网上的文档图):通过这个协议,第三方应用可以获取用户授权,然后使用license从授权服务器获取token,用于后续的查询API 服务器在数据时验证身份。
这个验证链接增加了url生成的复杂度。好在网站上已经有廖雪峰老师提供的SDK工具包:sinaweibopy(廖老师的github地址好像改名了,所以网上很多旧链接失效了,是新的有效链接) ,但是这个程序是基于python2环境编写的,python3的一些系统库发生了变化,调用程序时经常报错。作为一个python初学者,让程序适应python3环境无疑是困难的。幸运的是,一位伟大的上帝做了这项工作。感谢owolf为python3重写的SDK:sinaweibopy3。我用过,运行正常。你可以下载它。最详细的我也推荐owolf的文章全网:python3调用新浪微博API接口获取数据。
简单例子
先介绍一下新浪微博API的使用流程,供新人参考。
1.参数设置
导入sinaweibopy3
导入浏览器
导入json
APP_KEY ='填写您的应用密钥'
APP_SECRET='填写您的应用密钥'
REDIRECT_URL ='填写您的授权回调页面'
注意:
这个文件需要和sinaweibopy3.py放在同一个文件夹中。
填写的三项信息都是准备中提到的信息。
这里讲一个我粗心造成的bug,给大家提个醒。一开始,我运行程序时,每次都出现“重定向地址不匹配”的错误提示:
使用微博账号登录时出错!授权第三方应用程序时出错。请联系第三方应用的开发者:XXX 或稍后重试。
错误代码:21322 重定向地址不匹配
在网上找解决办法,需要设置回调页面,不过我在前面的步骤中已经设置好了。为什么我还是有这个问题?后来在文章看到一篇文章,提到回调页面地址要和程序中的REDIRECT_URL一致。我想到了程序示例,一开始使用http:。我看填的时候地址是一样的,所以没改。 网站上是https: 一开始,有's'的区别。当时还以为是地址,没想到和原来大不一样!
2.OAuth2.0 验证生成的url
client = sinaweibopy3.APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=REDIRECT_URL)
url = client.get_authorize_url()
webbrowser.open_new(url)
result = client.request_access_token(input("请输入代码:"))
client.set_access_token(result.access_token, result.expires_in)
注:这是在OAuth2.0中调用sinaweibopy3实现用户授权的过程->获取Token。当程序运行到client.request_access_token时,会弹出输入提示“请输入代码:”,询问代码?这是什么意思?打开浏览器,会看到出现OAuth2.0验证回调页面。地址栏中的'code='后面有一串字符。这就是我们想要的Token信息。复制粘贴进去,程序继续运行。
3.从 API 读取数据
运行以下代码读取公共微博数据并显示结果。
result=client.public_timeline()
print(json.dumps(result,indent=2,ensure_ascii=False))
通过查看数据结构,可以提取出具体的信息。例如,使用以下代码输出用户的微博昵称、位置和最新的微博文本。
number=result["total_number"]
print(number,"users:")
对于你的结果["statuses"]:
print(u["user"]["screen_name"])
print(u["user"]["location"])
print(u["text"])
高级
基于新浪微博开放API开发免费开源的微博程序-Xweibo
网站优化 • 优采云 发表了文章 • 0 个评论 • 87 次浏览 • 2021-08-12 20:20
Xweibo是一款基于新浪微博开放API开发的免费开源微博程序。 网站运营商只需要下载X微博安装文件,按照安装向导在服务器上完成安装即可获得完整的微博平台。微博平台收录微博内容的接收、发送、评论、关注、私信等常用功能,并可自定义功能和界面。微博开放平台是基于新浪微博系统的开放信息订阅、分享和交流平台。微博开放平台为您提供海量微博信息、粉丝关系、随时随地发生的信息裂变传播渠道。您可以登录平台创建应用,利用微博平台提供的界面创建有趣的应用或让您的网站具有更强的社交特征。
账号互通,畅游微博世界
1.可以单独使用新浪微博账号登录。
2.可以单独用网站原账号登录。
3.support网站原账号和新浪微博账号选择登录。
4.分享新浪微博海量内容,将网站产生的信息通过微博传播到亿万用户的新浪微博平台,从而获得营销推广机会,与新浪微博共同成长.
高效的运营管理平台
1.User 认证系统:支持在新浪认证、网站认证、新浪认证和网站认证双重认证之间切换。
2.内容推荐:根据用户需求,以多种形式推荐用户和话题。
3.界面管理:模板设置,可选择两栏和三栏模板。
4.信息安全:屏蔽指定内容;有非法信息过滤机制,也可以自定义屏蔽某条微博或评论;可以屏蔽用户,也可以屏蔽指定用户。
5.Skinning 机制:灵活的换肤机制,提供多套炫目的皮肤,可自定义。
6.异地调用功能:提供微博展示单元、用户列表单元、互动话题单元、一键关注单元、群微博单元等多种形式的调用,丰富网站的内容@其他页面。
7.互动模块:活动、直播、采访。
8.扩展设置:焦点位置、轮廓位置、页眉和页脚的推荐设置。
9.Search 功能:为用户和微博提供全面的搜索。
10.数据隔离:可以选择只显示本站的数据。
11.一个页面可以添加多个同类型组件的功能。
12.更多个性化设置:短链接、个性化域名。
完善的内容审核,保障信息安全
1.数据本地备份。
2.六层信息安全审查机制:
第一级:用户筛选和屏蔽。
第二级:非法信息发布过滤(新浪微博帮你完成)
第三层:信息审核和人工排查(新浪微博庞大的24小时内容监控团队会帮你完成)。
第四层:网站运营人员实时排查(X微博管理后台可以实时查看网站发来的微博进行屏蔽)。
第五层:关键词secondary filter(可以在微博管理后台设置关键词filter)。
第六级:违规留言反馈删除通道(可以使用新浪微博举报功能举报需要删除的微博内容)。
多版本
1. 支持移动 WAP 访问。
2. WEB页面信息实时同步,尽享掌上微博无限乐趣。
WAP不需要设置,直接读取WEB管理后台设置。 查看全部
基于新浪微博开放API开发免费开源的微博程序-Xweibo
Xweibo是一款基于新浪微博开放API开发的免费开源微博程序。 网站运营商只需要下载X微博安装文件,按照安装向导在服务器上完成安装即可获得完整的微博平台。微博平台收录微博内容的接收、发送、评论、关注、私信等常用功能,并可自定义功能和界面。微博开放平台是基于新浪微博系统的开放信息订阅、分享和交流平台。微博开放平台为您提供海量微博信息、粉丝关系、随时随地发生的信息裂变传播渠道。您可以登录平台创建应用,利用微博平台提供的界面创建有趣的应用或让您的网站具有更强的社交特征。
账号互通,畅游微博世界
1.可以单独使用新浪微博账号登录。
2.可以单独用网站原账号登录。
3.support网站原账号和新浪微博账号选择登录。
4.分享新浪微博海量内容,将网站产生的信息通过微博传播到亿万用户的新浪微博平台,从而获得营销推广机会,与新浪微博共同成长.
高效的运营管理平台
1.User 认证系统:支持在新浪认证、网站认证、新浪认证和网站认证双重认证之间切换。
2.内容推荐:根据用户需求,以多种形式推荐用户和话题。
3.界面管理:模板设置,可选择两栏和三栏模板。
4.信息安全:屏蔽指定内容;有非法信息过滤机制,也可以自定义屏蔽某条微博或评论;可以屏蔽用户,也可以屏蔽指定用户。
5.Skinning 机制:灵活的换肤机制,提供多套炫目的皮肤,可自定义。
6.异地调用功能:提供微博展示单元、用户列表单元、互动话题单元、一键关注单元、群微博单元等多种形式的调用,丰富网站的内容@其他页面。
7.互动模块:活动、直播、采访。
8.扩展设置:焦点位置、轮廓位置、页眉和页脚的推荐设置。
9.Search 功能:为用户和微博提供全面的搜索。
10.数据隔离:可以选择只显示本站的数据。
11.一个页面可以添加多个同类型组件的功能。
12.更多个性化设置:短链接、个性化域名。
完善的内容审核,保障信息安全
1.数据本地备份。
2.六层信息安全审查机制:
第一级:用户筛选和屏蔽。
第二级:非法信息发布过滤(新浪微博帮你完成)
第三层:信息审核和人工排查(新浪微博庞大的24小时内容监控团队会帮你完成)。
第四层:网站运营人员实时排查(X微博管理后台可以实时查看网站发来的微博进行屏蔽)。
第五层:关键词secondary filter(可以在微博管理后台设置关键词filter)。
第六级:违规留言反馈删除通道(可以使用新浪微博举报功能举报需要删除的微博内容)。
多版本
1. 支持移动 WAP 访问。
2. WEB页面信息实时同步,尽享掌上微博无限乐趣。
WAP不需要设置,直接读取WEB管理后台设置。
基于新浪微博开放API开发免费开源的微博平台内容
网站优化 • 优采云 发表了文章 • 0 个评论 • 68 次浏览 • 2021-08-12 20:18
Xweibo是一款基于新浪微博开放API开发的免费开源微博程序。 网站运营商只需要下载X微博安装文件,按照安装向导在服务器上完成安装即可获得完整的微博平台。微博平台收录微博内容的接收、发送、评论、关注、私信等常用功能,并可自定义功能和界面。微博开放平台是基于新浪微博系统的开放信息订阅、分享和交流平台。微博开放平台为您提供海量微博信息、粉丝关系、随时随地发生的信息裂变传播渠道。您可以登录平台创建应用,利用微博平台提供的界面创建有趣的应用或让您的网站具有更强的社交特征。
账号互通,畅游微博世界
1.可以单独使用新浪微博账号登录。
2.可以单独用网站原账号登录。
3.support网站原账号和新浪微博账号选择登录。
4.分享新浪微博的海量内容,将网站产生的信息通过微博传播到数亿用户的新浪微博平台,获得营销推广机会,与新浪微博共同成长。
高效的运营管理平台
1.User 认证系统:支持在新浪认证、网站认证、新浪认证和网站认证双重认证之间切换。
2.内容推荐:根据用户需求,以多种形式推荐用户和话题。
3.界面管理:模板设置,可选择两栏和三栏模板。
4.信息安全:屏蔽指定内容;有非法信息过滤机制,也可以自定义屏蔽某条微博或评论;可以屏蔽用户,也可以屏蔽指定用户。
5.Skinning 机制:灵活的换肤机制,提供多套炫目的皮肤,可自定义。
6.异地通话功能:提供微博展示单元、用户列表单元、互动话题单元、一键关注单元、群微博单元等多种形式的通话,丰富网站的内容@其他页面。
7.互动模块:活动、直播、采访。
8.扩展设置:焦点位置、轮廓位置、页眉和页脚的推荐设置。
9.Search 功能:为用户和微博提供全面的搜索。
10.数据隔离:可以选择只显示本站的数据。
11.一个页面可以添加多个同类型组件的功能。
12.更多个性化设置:短链接、个性化域名。
完善的内容审核,保障信息安全
1.数据本地备份。
2.六层信息安全审查机制:
第一级:用户筛选和屏蔽。
第二级:非法信息发布过滤(新浪微博帮你完成)
第三层:信息审核和人工排查(新浪微博庞大的24小时内容监控团队会帮你完成)。
第四层:网站运营人员实时排查(X微博管理后台可以实时查看网站发来的微博进行屏蔽)。
第五层:关键词secondary filter(可以在微博管理后台设置关键词filter)。
第六级:违规留言反馈删除通道(可以使用新浪微博举报功能举报需要删除的微博内容)。
多版本
1. 支持移动 WAP 访问。
2. WEB页面信息实时同步,尽享掌上微博无限乐趣。
WAP不需要设置,直接读取WEB管理后台设置。 查看全部
基于新浪微博开放API开发免费开源的微博平台内容
Xweibo是一款基于新浪微博开放API开发的免费开源微博程序。 网站运营商只需要下载X微博安装文件,按照安装向导在服务器上完成安装即可获得完整的微博平台。微博平台收录微博内容的接收、发送、评论、关注、私信等常用功能,并可自定义功能和界面。微博开放平台是基于新浪微博系统的开放信息订阅、分享和交流平台。微博开放平台为您提供海量微博信息、粉丝关系、随时随地发生的信息裂变传播渠道。您可以登录平台创建应用,利用微博平台提供的界面创建有趣的应用或让您的网站具有更强的社交特征。
账号互通,畅游微博世界
1.可以单独使用新浪微博账号登录。
2.可以单独用网站原账号登录。
3.support网站原账号和新浪微博账号选择登录。
4.分享新浪微博的海量内容,将网站产生的信息通过微博传播到数亿用户的新浪微博平台,获得营销推广机会,与新浪微博共同成长。
高效的运营管理平台
1.User 认证系统:支持在新浪认证、网站认证、新浪认证和网站认证双重认证之间切换。
2.内容推荐:根据用户需求,以多种形式推荐用户和话题。
3.界面管理:模板设置,可选择两栏和三栏模板。
4.信息安全:屏蔽指定内容;有非法信息过滤机制,也可以自定义屏蔽某条微博或评论;可以屏蔽用户,也可以屏蔽指定用户。
5.Skinning 机制:灵活的换肤机制,提供多套炫目的皮肤,可自定义。
6.异地通话功能:提供微博展示单元、用户列表单元、互动话题单元、一键关注单元、群微博单元等多种形式的通话,丰富网站的内容@其他页面。
7.互动模块:活动、直播、采访。
8.扩展设置:焦点位置、轮廓位置、页眉和页脚的推荐设置。
9.Search 功能:为用户和微博提供全面的搜索。
10.数据隔离:可以选择只显示本站的数据。
11.一个页面可以添加多个同类型组件的功能。
12.更多个性化设置:短链接、个性化域名。
完善的内容审核,保障信息安全
1.数据本地备份。
2.六层信息安全审查机制:
第一级:用户筛选和屏蔽。
第二级:非法信息发布过滤(新浪微博帮你完成)
第三层:信息审核和人工排查(新浪微博庞大的24小时内容监控团队会帮你完成)。
第四层:网站运营人员实时排查(X微博管理后台可以实时查看网站发来的微博进行屏蔽)。
第五层:关键词secondary filter(可以在微博管理后台设置关键词filter)。
第六级:违规留言反馈删除通道(可以使用新浪微博举报功能举报需要删除的微博内容)。
多版本
1. 支持移动 WAP 访问。
2. WEB页面信息实时同步,尽享掌上微博无限乐趣。
WAP不需要设置,直接读取WEB管理后台设置。
腾讯的文档写的很详细接入方法懂
网站优化 • 优采云 发表了文章 • 0 个评论 • 203 次浏览 • 2021-08-12 07:26
腾讯的文档很详细,很容易实现第三方访问
感觉新浪的文档不是很懂。可能是我的水平有问题。
使用JS的快速访问方法如下
1.先申请App Key、App Secret并绑定域名到新浪申请
2.在微博组件页面可以选择快速放置需要的微博组件
(1) 示例选择放置微博登录组件,
将以下 JS 语句放在标签中
在需要放置微博登录的地方写上如下语句,
标签下写如下JS语句,注意这里的ID要和上面的ID一致
WB2.anyWhere(function(W){
W.widget.connectButton({
id: "wb_connect_btn",
type:"3,2",
callback : {
login:function(o){ //登录后的回调函数
},
logout:function(){ //退出后的回调函数
}
}
});
很简单,我们已经完成了登录微博的任务,但是我们的目的是调用api获取我们想要的数据,所以给出一个简单的API调用的例子。
1. 用户登录时,我们获取授权用户的uid,通过uid获取用户信息。
if(WB2.checkLogin()){/*weibo 登录*/
//var uid;
WB2.anyWhere(function (W) {
/***获取授权用户id***/
W.parseCMD("/account/get_uid.json", function (sResult, bStatus)
{
if (!!bStatus) {
/**请求uid成功后调用以获取用户数据**/
getData(W, sResult);
//alert(sResult.uid);
}else{
alert("授权失败或错误");
}
}, {}, {
method: 'GET'
});
});
function getData(W, User)
{
W.parseCMD("/users/show.json", function(sResult, bStatus){
// alert(sResult.name);
var uid = User.uid;
// alert(nickname);
// xmlhttp.open("GET","http://localhost/CI/index.php/ ... 2Buid,true);
// xmlhttp.send();
},{
/* 传递参数 */
uid : User.uid
},{
method: 'GET'
});
};
这里两次调用新浪api,第一次请求uid,第二次通过uid作为参数请求用户信息,查询新浪api。
细节我就不细说了,如有错误请多多指出。 查看全部
腾讯的文档写的很详细接入方法懂
腾讯的文档很详细,很容易实现第三方访问
感觉新浪的文档不是很懂。可能是我的水平有问题。
使用JS的快速访问方法如下
1.先申请App Key、App Secret并绑定域名到新浪申请
2.在微博组件页面可以选择快速放置需要的微博组件
(1) 示例选择放置微博登录组件,
将以下 JS 语句放在标签中
在需要放置微博登录的地方写上如下语句,
标签下写如下JS语句,注意这里的ID要和上面的ID一致
WB2.anyWhere(function(W){
W.widget.connectButton({
id: "wb_connect_btn",
type:"3,2",
callback : {
login:function(o){ //登录后的回调函数
},
logout:function(){ //退出后的回调函数
}
}
});
很简单,我们已经完成了登录微博的任务,但是我们的目的是调用api获取我们想要的数据,所以给出一个简单的API调用的例子。
1. 用户登录时,我们获取授权用户的uid,通过uid获取用户信息。
if(WB2.checkLogin()){/*weibo 登录*/
//var uid;
WB2.anyWhere(function (W) {
/***获取授权用户id***/
W.parseCMD("/account/get_uid.json", function (sResult, bStatus)
{
if (!!bStatus) {
/**请求uid成功后调用以获取用户数据**/
getData(W, sResult);
//alert(sResult.uid);
}else{
alert("授权失败或错误");
}
}, {}, {
method: 'GET'
});
});
function getData(W, User)
{
W.parseCMD("/users/show.json", function(sResult, bStatus){
// alert(sResult.name);
var uid = User.uid;
// alert(nickname);
// xmlhttp.open("GET","http://localhost/CI/index.php/ ... 2Buid,true);
// xmlhttp.send();
},{
/* 传递参数 */
uid : User.uid
},{
method: 'GET'
});
};
这里两次调用新浪api,第一次请求uid,第二次通过uid作为参数请求用户信息,查询新浪api。
细节我就不细说了,如有错误请多多指出。
使用API提交数据(发布一条微博信息)(组图)
网站优化 • 优采云 发表了文章 • 0 个评论 • 65 次浏览 • 2021-08-12 07:18
我也是新手,第一次使用开放平台进行开发。一开始,我觉得无处可去。经过长时间的摸索,终于成功调用了API。现在把这个经验介绍给新手(高手不需要看,当然,如果你能提出一些意见和建议,我非常感谢),我想和你交流。
这个例子描述了如何使用API提交数据(发布微博)和使用API获取数据(获取最新更新的20条公共微博消息),即“获取下游数据集(时间线)”官方API)“statuses/public_timeline下的“获取最新更新的公众微博消息接口”和“statuses/update发布微博信息”下的“微博访问接口”。
首先,您必须有一个新浪微博账号,并申请一个app key(详情请参考%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97) ,然后在VS中新建一个解决方案,在解决方案中添加一个类库和一个网站,并添加一个引用(网站Reference Class Library)。
因为发布微博是POST请求,获取数据是GET请求,并且是通过HTTP基本认证(Basic Authentication)授权的,所以我把这些函数写在一个类中(在类库中),代码如下如下(这个类仅供参考,没有仔细考虑是否通用):
发送请求和授权码
然后在类库中创建两个实体类status和user,字段与官方API相同:
状态实体类
用户实体类
好的,经过以上步骤,准备工作已经完成,现在可以调用API了。让我们看看发布一条微博消息。虽然在这个文章() 中有介绍,但为了本文的完整性,我还是把它贴出来。上传我的代码,在类库中添加一个微博访问类MiniBlogVisit类:
微博访问班
您可以通过调用更新方法发布微博。但需要注意的是,这里的Content必须使用HttpUtility.UrlEncode进行编码,否则会出现乱码。
最新更新看20条公众微博消息,这是官方API中的第一个接口。这是 XML 数据或 JSON 数据。您可以根据自己的喜好自由选择。我选择返回 XML。数据。我的方法是将返回的XML数据写入XML文件,然后解析XML文件,代码如下:
获取数据代码
好的,现在它被调用了。调用比较简单,是一个空的Default.aspx页面,后台代码如下:
呼叫代码
至此,所有代码都写完了,来看看完整的解决方案:
运行后效果如下:
第一次调用API,也是第一次写这么长的文章。欢迎大家! ! ! 查看全部
使用API提交数据(发布一条微博信息)(组图)
我也是新手,第一次使用开放平台进行开发。一开始,我觉得无处可去。经过长时间的摸索,终于成功调用了API。现在把这个经验介绍给新手(高手不需要看,当然,如果你能提出一些意见和建议,我非常感谢),我想和你交流。
这个例子描述了如何使用API提交数据(发布微博)和使用API获取数据(获取最新更新的20条公共微博消息),即“获取下游数据集(时间线)”官方API)“statuses/public_timeline下的“获取最新更新的公众微博消息接口”和“statuses/update发布微博信息”下的“微博访问接口”。
首先,您必须有一个新浪微博账号,并申请一个app key(详情请参考%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97) ,然后在VS中新建一个解决方案,在解决方案中添加一个类库和一个网站,并添加一个引用(网站Reference Class Library)。

因为发布微博是POST请求,获取数据是GET请求,并且是通过HTTP基本认证(Basic Authentication)授权的,所以我把这些函数写在一个类中(在类库中),代码如下如下(这个类仅供参考,没有仔细考虑是否通用):

发送请求和授权码
然后在类库中创建两个实体类status和user,字段与官方API相同:

状态实体类

用户实体类
好的,经过以上步骤,准备工作已经完成,现在可以调用API了。让我们看看发布一条微博消息。虽然在这个文章() 中有介绍,但为了本文的完整性,我还是把它贴出来。上传我的代码,在类库中添加一个微博访问类MiniBlogVisit类:

微博访问班
您可以通过调用更新方法发布微博。但需要注意的是,这里的Content必须使用HttpUtility.UrlEncode进行编码,否则会出现乱码。
最新更新看20条公众微博消息,这是官方API中的第一个接口。这是 XML 数据或 JSON 数据。您可以根据自己的喜好自由选择。我选择返回 XML。数据。我的方法是将返回的XML数据写入XML文件,然后解析XML文件,代码如下:

获取数据代码
好的,现在它被调用了。调用比较简单,是一个空的Default.aspx页面,后台代码如下:

呼叫代码
至此,所有代码都写完了,来看看完整的解决方案:

运行后效果如下:

第一次调用API,也是第一次写这么长的文章。欢迎大家! ! !
使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步到第三方服务中的那些方法)
网站优化 • 优采云 发表了文章 • 0 个评论 • 94 次浏览 • 2021-09-07 06:07
使用新浪微博开放平台api同步微博内容至自己网站。通过这个工具,你可以直接在新浪微博的api服务端获取到所有同步后的内容。
除了同步微博之外,你还要有新浪微博的认证,你的认证是否实名看你是否是微博的重度用户。然后就可以去开通微博,开通了就可以绑定你的银行卡了。把你的微博绑定到你银行卡里就可以转账,发红包了。注册新浪微博也很简单的,认证账号,绑定银行卡即可。简单的方法。
通过认证企业和普通个人账号绑定账号,
你是否注册了微博?如果注册了,将有第三方接口帮你进行同步;否则要买一个微博才行。
买一个买账号的钱都够买一个营销通的了
新浪微博绑定银行卡
绑定好银行卡上的网址(需要验证)然后你进入的新浪微博就能看到你买过的账号发送过的内容,
新浪微博主页—个人资料—实名认证—开通新浪邮箱在邮箱的主页上点开通电子邮箱输入你的手机号码实名认证成功后账号就同步到你的微博了
参考链接:微博账号同步到第三方服务中的那些方法!
首先,你必须是已经成为拥有新浪微博帐号,然后就是拥有新浪的认证!很多人不懂微博认证,以为直接买别人微博的用户,就可以认证自己的微博了,这是相当于直接黑户注册新浪的微博。下面就为大家整理一下微博认证需要的条件,需要的材料,具体如下:第一,同一身份证下只能注册一个新浪微博帐号。新浪微博认证需要户口本和身份证。
户口本里的自己是唯一用户,身份证上的自己只能注册一个新浪微博账号。第二,同一身份证名下只能注册一个新浪微博帐号。注册一个账号需要20元人民币,每个用户最多支持3个认证。第三,同一身份证名下只能注册一个新浪微博帐号。新浪微博认证认证需要支付邮费,支付方式为银行卡。每个认证需要5元邮费。第四,微博认证需要使用阿里旺旺认证,会收取1元费用。
第五,同一身份证注册多个微博的话,重复注册会收取20元人民币。第六,获得新浪微博账号:买一个新浪微博账号,然后绑定你的银行卡即可!第七,如果你注册不止一个微博,要绑定同一个银行卡。其他步骤相同,只是注册时间不同而已!。 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步到第三方服务中的那些方法)
使用新浪微博开放平台api同步微博内容至自己网站。通过这个工具,你可以直接在新浪微博的api服务端获取到所有同步后的内容。
除了同步微博之外,你还要有新浪微博的认证,你的认证是否实名看你是否是微博的重度用户。然后就可以去开通微博,开通了就可以绑定你的银行卡了。把你的微博绑定到你银行卡里就可以转账,发红包了。注册新浪微博也很简单的,认证账号,绑定银行卡即可。简单的方法。
通过认证企业和普通个人账号绑定账号,
你是否注册了微博?如果注册了,将有第三方接口帮你进行同步;否则要买一个微博才行。
买一个买账号的钱都够买一个营销通的了
新浪微博绑定银行卡
绑定好银行卡上的网址(需要验证)然后你进入的新浪微博就能看到你买过的账号发送过的内容,
新浪微博主页—个人资料—实名认证—开通新浪邮箱在邮箱的主页上点开通电子邮箱输入你的手机号码实名认证成功后账号就同步到你的微博了
参考链接:微博账号同步到第三方服务中的那些方法!
首先,你必须是已经成为拥有新浪微博帐号,然后就是拥有新浪的认证!很多人不懂微博认证,以为直接买别人微博的用户,就可以认证自己的微博了,这是相当于直接黑户注册新浪的微博。下面就为大家整理一下微博认证需要的条件,需要的材料,具体如下:第一,同一身份证下只能注册一个新浪微博帐号。新浪微博认证需要户口本和身份证。
户口本里的自己是唯一用户,身份证上的自己只能注册一个新浪微博账号。第二,同一身份证名下只能注册一个新浪微博帐号。注册一个账号需要20元人民币,每个用户最多支持3个认证。第三,同一身份证名下只能注册一个新浪微博帐号。新浪微博认证认证需要支付邮费,支付方式为银行卡。每个认证需要5元邮费。第四,微博认证需要使用阿里旺旺认证,会收取1元费用。
第五,同一身份证注册多个微博的话,重复注册会收取20元人民币。第六,获得新浪微博账号:买一个新浪微博账号,然后绑定你的银行卡即可!第七,如果你注册不止一个微博,要绑定同一个银行卡。其他步骤相同,只是注册时间不同而已!。
使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步微博同步内容至自己网站)
网站优化 • 优采云 发表了文章 • 0 个评论 • 69 次浏览 • 2021-09-07 03:04
使用新浪微博开放平台api同步微博内容至自己网站,有接口可以自己实现,或者借助第三方工具。比如现在很火的ricequant提供基于webgl的数据可视化接口。这个接口每天是免费的,里面可以上传网页内容到ricequant,或者链接到js地址到已有的网页。我自己的站试了一下,效果还是不错。楼主可以试试。
现在的新浪微博开放平台:/,可以实现:同步新浪微博内容到博客等私人网站等;安卓微博app实时定制发布;一键转发功能,不用再管网站了。
新浪的api私信小弟。最近有需求。谢谢,不用谢。
你可以直接用米饭云的微博数据接口,是提供的,免费的;做一个模板就可以随时接入新浪官方微博api做营销推广,只要搭建了个人博客,就可以嵌入米饭云的api,公众号也行。api接口调用方法,你可以自己查文档找下,比如这样:数据回传的话,也是一样你不用担心,我们有专门的工作人员帮你解决,我们的技术人员都是在香港用本人的博客和注册号做登记的。
原来wi-fi是可以直接传文件的,可是现在的手机云服务基本上都已经实现了wi-fi传文件,
是的哦,可以实现微博内容转发,@微博网站。
现在可以这样做,你可以通过api接口把内容的链接直接转发到你的网站.比如你的微博账号/网站地址链接,你的网站后台把数据连接转发到api.也可以授权给这个api转发给其他网站,也可以直接实现,比如1.把你的链接给你的网站的域名2.转发到新浪博客,新浪博客的api也会转发.3.分享给其他人 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步微博同步内容至自己网站)
使用新浪微博开放平台api同步微博内容至自己网站,有接口可以自己实现,或者借助第三方工具。比如现在很火的ricequant提供基于webgl的数据可视化接口。这个接口每天是免费的,里面可以上传网页内容到ricequant,或者链接到js地址到已有的网页。我自己的站试了一下,效果还是不错。楼主可以试试。
现在的新浪微博开放平台:/,可以实现:同步新浪微博内容到博客等私人网站等;安卓微博app实时定制发布;一键转发功能,不用再管网站了。
新浪的api私信小弟。最近有需求。谢谢,不用谢。
你可以直接用米饭云的微博数据接口,是提供的,免费的;做一个模板就可以随时接入新浪官方微博api做营销推广,只要搭建了个人博客,就可以嵌入米饭云的api,公众号也行。api接口调用方法,你可以自己查文档找下,比如这样:数据回传的话,也是一样你不用担心,我们有专门的工作人员帮你解决,我们的技术人员都是在香港用本人的博客和注册号做登记的。
原来wi-fi是可以直接传文件的,可是现在的手机云服务基本上都已经实现了wi-fi传文件,
是的哦,可以实现微博内容转发,@微博网站。
现在可以这样做,你可以通过api接口把内容的链接直接转发到你的网站.比如你的微博账号/网站地址链接,你的网站后台把数据连接转发到api.也可以授权给这个api转发给其他网站,也可以直接实现,比如1.把你的链接给你的网站的域名2.转发到新浪博客,新浪博客的api也会转发.3.分享给其他人
使用新浪微博开放平台api同步微博内容至自己网站( 新浪微博API关闭:想用.js是我之前没用过的)
网站优化 • 优采云 发表了文章 • 0 个评论 • 83 次浏览 • 2021-09-06 04:10
新浪微博API关闭:想用.js是我之前没用过的)
我一直在使用新浪微博API进行数据同步。今年年初,大约是1月8日。微博 API 突然不可用,原因不明。接口调用不断出现 403 错误。私信“微博开发平台”联系一直是机器回复。
所以我猜新浪微博关闭了它的API。我猜可能是微博太难盈利了,所以就跟腾讯学了,把数据都关了,赚了很多钱。
但是,我在微博上发布了很多数据,但是微博至今还没有提供数据备份,所以我还需要寻找其他方式来同步和备份数据,所以我想使用微博来转换RSS的方式用于数据导出。
11年前做过一个PHP微博转换项目,但是时间太久,里面的数据结构完全变了,不能用了,于是上网搜了一下。看看有没有现成的项目,结果发现github上有个weibo-rss的项目可以用,但是部署用的是Node.js,之前没用过。
我在国外买的云服务器使用的是LNMP(Linux-Nginx-MySQL-PHP)环境。 web服务器是Nginx,体积小,稳定,占用资源少。一个低调的服务器可以做一个动态的网站。我尝试将此 Node.js 项目部署到此服务器。
服务器没有安装Node.js,需要先安装环境。面板中有一个“PM2管理器”,就是一个node.js管理器,内置了node.js + npm + nvm + pm2,可以一键安装。
安装环境后,按照项目说明开始手动部署。
git 克隆
cd weibo-rss
npm 安装
pm2 启动 bin/www
按照之前部署php的思路,部署到wwwroot下的一个目录下。从网页访问后,页面可以出来,但是RSS提示“获取数据失败”。
后来咨询了项目作者,发现项目部署到了3000端口,而不是Nginx的80和443端口。我用3000端口的地址访问,可以正常获取数据。
当然,我还是希望最终能在Nginx下使用。在 Nginx 中设置反向代理并将目录映射到端口 3000 以在端口 80 和 443 上访问此 Node.js 项目。
() () 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(
新浪微博API关闭:想用.js是我之前没用过的)

我一直在使用新浪微博API进行数据同步。今年年初,大约是1月8日。微博 API 突然不可用,原因不明。接口调用不断出现 403 错误。私信“微博开发平台”联系一直是机器回复。
所以我猜新浪微博关闭了它的API。我猜可能是微博太难盈利了,所以就跟腾讯学了,把数据都关了,赚了很多钱。
但是,我在微博上发布了很多数据,但是微博至今还没有提供数据备份,所以我还需要寻找其他方式来同步和备份数据,所以我想使用微博来转换RSS的方式用于数据导出。
11年前做过一个PHP微博转换项目,但是时间太久,里面的数据结构完全变了,不能用了,于是上网搜了一下。看看有没有现成的项目,结果发现github上有个weibo-rss的项目可以用,但是部署用的是Node.js,之前没用过。
我在国外买的云服务器使用的是LNMP(Linux-Nginx-MySQL-PHP)环境。 web服务器是Nginx,体积小,稳定,占用资源少。一个低调的服务器可以做一个动态的网站。我尝试将此 Node.js 项目部署到此服务器。
服务器没有安装Node.js,需要先安装环境。面板中有一个“PM2管理器”,就是一个node.js管理器,内置了node.js + npm + nvm + pm2,可以一键安装。
安装环境后,按照项目说明开始手动部署。
git 克隆
cd weibo-rss
npm 安装
pm2 启动 bin/www
按照之前部署php的思路,部署到wwwroot下的一个目录下。从网页访问后,页面可以出来,但是RSS提示“获取数据失败”。
后来咨询了项目作者,发现项目部署到了3000端口,而不是Nginx的80和443端口。我用3000端口的地址访问,可以正常获取数据。
当然,我还是希望最终能在Nginx下使用。在 Nginx 中设置反向代理并将目录映射到端口 3000 以在端口 80 和 443 上访问此 Node.js 项目。

() ()
使用新浪微博开放平台api同步微博内容至自己网站(微博开放平台注册开发者并获取app和appsecret百度很容易)
网站优化 • 优采云 发表了文章 • 0 个评论 • 95 次浏览 • 2021-09-05 11:23
前言:微博开放平台提供了微博数据的api接口。不仅可以直接使用api调用微博服务发布微博和查询微博,更重要的是你可以在你的网站上获得新浪微博@博客api的授权可以调用微博的一些内容,就好像我们在网站@看到好的文章并分享到微博或其他社交网络网站@中,非常方便。
让我们探索下面的秘密。
1.注册开发者,获取应用秘钥和应用秘钥
百度很容易找到微博开放平台的入口,登录微博账号,点击账号头像,会提示编辑开发者信息。
可以看到如下页面,按照提示填写即可,这里紧急联系人可以自己填写,网站@无所谓,自己填写百度即可。
提交后,您需要在我的应用中验证您的真实姓名。上传图片时请耐心等待。有点慢,没有上传进度。上传后点击返回跳转到新页面:
根据需要选择,然后创建您自己的应用程序。至于各个应用术语的含义,我不是很清楚。我选择了另一个应用程序
创建后,您将收到一封收录应用密钥和应用机密的电子邮件。这是获得授权的关键。
2.获取令牌
点击首页的api接口,会跳转到api接口描述文档页面。你会发现这个api有很多功能,包括创建微博、删除微博、关注/取消关注等很多接口,但是每个接口都有Token需要访问。令牌从何而来?
首先你需要得到一个code code,其次你需要有一个URL来调用接口(因为我申请的是web应用)。
设置关联网址:
点击您的应用名称,然后在左侧菜单中找到高级信息,然后您可以对其进行编辑。
在api界面下点击
,进入授权界面查看使用情况
根据例子,你需要发送一个收录client_id和redirect_uri的get请求。可以直接拼接。
https://api.weibo.com/oauth2/a ... Dcode
其中client_id是你申请的app key,redirect_uri是你要回调的接口地址,api会原样返回。可以直接在浏览器中输入url,如下图:
这个页面熟悉吗?授权后网页会跳转回redirect_uri页面,url后面会写code。所以代码就在那里
接下来获取授权令牌,第二个授权接口:
页面上有详细的用法。发送http post请求,我是用java http-client4.5来做的,其实其他方法也可以。
代码写得不好,但或多或少有用。 5 个必需的参数值。我们已经拿到了最后两个,前两个在邮件里。代码将不会发布。打理好自己的打字,熟悉用法,以后难免会提出各种要求。
至此,我们已经授权成功,返回值中收录需要的token值。如果返回错误,请查看错误信息或百度错误信息。
从现在开始,你只需要带上token来请求各种接口。虽然有次数限制,但正常使用应该足够了。
后记:
1. 本来想做一些爬虫类的功能。我想在微博开放界面获取一些数据。不过从API来看,大部分都是基于web应用的微博分享功能。
例如,拥有自己的微博、获得粉丝、发微博、关注等都不是您所需要的。
前面提到的2.,微博开放api主要用于第三方网站@或者app访问微博,用微博登录或者通过api分享微博,所以有这个需求的完全可以拿仔细看看api接口。
在3.api接口中,所有get请求都可以直接拼接字符串获取,但是对于刚请求授权的get请求,需要用户账号同意向应用授权,所以必须登录到用户账号,如果浏览器保留了微博登录的cookie,那么浏览器可以自动登录获取目标码,如果没有,会提示登录
所以这个请求适合在浏览器上做,因为发送带有代码的请求来模拟登录,或者登录后使用cookie是很麻烦的。但是api中的其他get请求不会有这个问题,直接带上token就可以了。模拟登录可以使用selenium的webdriver来获取cookies。其他模拟登录的方法一般都很麻烦。
当然,如果你嵌入网站@,那么登录是用户的事。
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 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"));
}
5.如果你在网站@中嵌入了open api,一般做法是:在分享微博按钮(第三方登录按钮)上,发送微博授权认证,用户在网页点击授权后,后台获取code,根据code获取token。之后,如果您需要提取微博的用户名,您可以直接在后台发送请求。如果分享到微博,也可以通过api实现。
如果以后在实践中用到这些功能,请记下。本文到此结束。
来自 Wiz (Wiz) 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(微博开放平台注册开发者并获取app和appsecret百度很容易)
前言:微博开放平台提供了微博数据的api接口。不仅可以直接使用api调用微博服务发布微博和查询微博,更重要的是你可以在你的网站上获得新浪微博@博客api的授权可以调用微博的一些内容,就好像我们在网站@看到好的文章并分享到微博或其他社交网络网站@中,非常方便。
让我们探索下面的秘密。
1.注册开发者,获取应用秘钥和应用秘钥
百度很容易找到微博开放平台的入口,登录微博账号,点击账号头像,会提示编辑开发者信息。

可以看到如下页面,按照提示填写即可,这里紧急联系人可以自己填写,网站@无所谓,自己填写百度即可。

提交后,您需要在我的应用中验证您的真实姓名。上传图片时请耐心等待。有点慢,没有上传进度。上传后点击返回跳转到新页面:

根据需要选择,然后创建您自己的应用程序。至于各个应用术语的含义,我不是很清楚。我选择了另一个应用程序


创建后,您将收到一封收录应用密钥和应用机密的电子邮件。这是获得授权的关键。
2.获取令牌
点击首页的api接口,会跳转到api接口描述文档页面。你会发现这个api有很多功能,包括创建微博、删除微博、关注/取消关注等很多接口,但是每个接口都有Token需要访问。令牌从何而来?
首先你需要得到一个code code,其次你需要有一个URL来调用接口(因为我申请的是web应用)。
设置关联网址:

点击您的应用名称,然后在左侧菜单中找到高级信息,然后您可以对其进行编辑。

在api界面下点击

,进入授权界面查看使用情况

根据例子,你需要发送一个收录client_id和redirect_uri的get请求。可以直接拼接。
https://api.weibo.com/oauth2/a ... Dcode
其中client_id是你申请的app key,redirect_uri是你要回调的接口地址,api会原样返回。可以直接在浏览器中输入url,如下图:

这个页面熟悉吗?授权后网页会跳转回redirect_uri页面,url后面会写code。所以代码就在那里
接下来获取授权令牌,第二个授权接口:

页面上有详细的用法。发送http post请求,我是用java http-client4.5来做的,其实其他方法也可以。

代码写得不好,但或多或少有用。 5 个必需的参数值。我们已经拿到了最后两个,前两个在邮件里。代码将不会发布。打理好自己的打字,熟悉用法,以后难免会提出各种要求。
至此,我们已经授权成功,返回值中收录需要的token值。如果返回错误,请查看错误信息或百度错误信息。
从现在开始,你只需要带上token来请求各种接口。虽然有次数限制,但正常使用应该足够了。
后记:
1. 本来想做一些爬虫类的功能。我想在微博开放界面获取一些数据。不过从API来看,大部分都是基于web应用的微博分享功能。
例如,拥有自己的微博、获得粉丝、发微博、关注等都不是您所需要的。

前面提到的2.,微博开放api主要用于第三方网站@或者app访问微博,用微博登录或者通过api分享微博,所以有这个需求的完全可以拿仔细看看api接口。
在3.api接口中,所有get请求都可以直接拼接字符串获取,但是对于刚请求授权的get请求,需要用户账号同意向应用授权,所以必须登录到用户账号,如果浏览器保留了微博登录的cookie,那么浏览器可以自动登录获取目标码,如果没有,会提示登录

所以这个请求适合在浏览器上做,因为发送带有代码的请求来模拟登录,或者登录后使用cookie是很麻烦的。但是api中的其他get请求不会有这个问题,直接带上token就可以了。模拟登录可以使用selenium的webdriver来获取cookies。其他模拟登录的方法一般都很麻烦。
当然,如果你嵌入网站@,那么登录是用户的事。
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 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"));
}

5.如果你在网站@中嵌入了open api,一般做法是:在分享微博按钮(第三方登录按钮)上,发送微博授权认证,用户在网页点击授权后,后台获取code,根据code获取token。之后,如果您需要提取微博的用户名,您可以直接在后台发送请求。如果分享到微博,也可以通过api实现。
如果以后在实践中用到这些功能,请记下。本文到此结束。
来自 Wiz (Wiz)
使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步微博内容至自己(图))
网站优化 • 优采云 发表了文章 • 0 个评论 • 104 次浏览 • 2021-09-04 05:02
使用新浪微博开放平台api同步微博内容至自己网站,或推送至微信,或转发到微信公众号。
目前,腾讯微博应该对开放,移动端只需用vba远程调用即可;但微信现有体验不如腾讯微博,看看公众号“腾讯微博”的md设计,就知道了。
先有网站,再微信订阅号调用,
他们是oauth端到端授权,可以通过api或iframe等形式通过访问的。
方法有2种:1、通过第三方开发者,如:新浪微博。2、通过他们的reactnative来使用。
中文微博api
新浪微博应该不对外开放,开发者可以通过第三方(开放平台)调用。然后就可以搞定了。你可以搜索“国外oauthproxy”,可以看到各种教程。
既然可以通过微信filterapi进行匹配,就不用再单独申请一个微信apiapi了。
weibofilter.get(".../library/weibofilter.get")... 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步微博内容至自己(图))
使用新浪微博开放平台api同步微博内容至自己网站,或推送至微信,或转发到微信公众号。
目前,腾讯微博应该对开放,移动端只需用vba远程调用即可;但微信现有体验不如腾讯微博,看看公众号“腾讯微博”的md设计,就知道了。
先有网站,再微信订阅号调用,
他们是oauth端到端授权,可以通过api或iframe等形式通过访问的。
方法有2种:1、通过第三方开发者,如:新浪微博。2、通过他们的reactnative来使用。
中文微博api
新浪微博应该不对外开放,开发者可以通过第三方(开放平台)调用。然后就可以搞定了。你可以搜索“国外oauthproxy”,可以看到各种教程。
既然可以通过微信filterapi进行匹配,就不用再单独申请一个微信apiapi了。
weibofilter.get(".../library/weibofilter.get")...
使用新浪微博开放平台api同步微博内容至自己网站(java版新浪微博爬虫与具体语言无关的无关困难?)
网站优化 • 优采云 发表了文章 • 0 个评论 • 65 次浏览 • 2021-09-01 06:00
正好在读研究生的时候,为了完成这个课题,我写了一个Java版的新浪微博爬虫。现在说说题目和具体语言无关的一些难点。
1.login,这是编写这个爬虫的唯一也是最大的难点。当时(2013年10月),新浪微博的登录会采用base64加密用户名和rsa2加密,登录过程比较复杂。经过几次转发请求,都被javascript控制了,具体流程忘记了,但是我想说的是,我努力研究的模拟登录很快就没有了。我正在抓取数据 1 我已经能够登录一个月了。爬了差不多4个月的数据,还是登陆不上,具体原因我没研究过。看来新浪微博已经改版了,看起来像新浪微博。微博登录经常修改。
2.访问频率控制,我的访问频率控制在每秒5次(即每秒只发送5个请求到新浪微博服务器)。即便如此,ip仍然会被阻塞,请求不会被阻塞。有数据的情况下,使用代理IP。
3.你一直在访问某个大V的微博数据,即使你手动用鼠标点击访问,如果你在短时间内浏览了11个页面(看起来像这个数字,记不清了),每页应该有45个条目,这会限制您的访问。
总之,新浪微博的反爬虫非常好,抓到点乐趣也无妨。我的爬虫终于抓到了超过5000万条数据,每个大V的数据高达11*45条。 . 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(java版新浪微博爬虫与具体语言无关的无关困难?)
正好在读研究生的时候,为了完成这个课题,我写了一个Java版的新浪微博爬虫。现在说说题目和具体语言无关的一些难点。
1.login,这是编写这个爬虫的唯一也是最大的难点。当时(2013年10月),新浪微博的登录会采用base64加密用户名和rsa2加密,登录过程比较复杂。经过几次转发请求,都被javascript控制了,具体流程忘记了,但是我想说的是,我努力研究的模拟登录很快就没有了。我正在抓取数据 1 我已经能够登录一个月了。爬了差不多4个月的数据,还是登陆不上,具体原因我没研究过。看来新浪微博已经改版了,看起来像新浪微博。微博登录经常修改。
2.访问频率控制,我的访问频率控制在每秒5次(即每秒只发送5个请求到新浪微博服务器)。即便如此,ip仍然会被阻塞,请求不会被阻塞。有数据的情况下,使用代理IP。
3.你一直在访问某个大V的微博数据,即使你手动用鼠标点击访问,如果你在短时间内浏览了11个页面(看起来像这个数字,记不清了),每页应该有45个条目,这会限制您的访问。
总之,新浪微博的反爬虫非常好,抓到点乐趣也无妨。我的爬虫终于抓到了超过5000万条数据,每个大V的数据高达11*45条。 .
使用新浪微博开放平台api同步微博内容至自己网站(微博登录访问第三方网站需要注意哪些问题和瓶颈?)
网站优化 • 优采云 发表了文章 • 0 个评论 • 72 次浏览 • 2021-09-01 05:31
在平时的项目开发过程中,除了注册网站账号登录外,还可以调用第三方接口登录网站。这里我们以微博登录为例。微博登录包括身份认证、用户关系和内容传播。允许用户使用微博账号登录,访问第三方网站,分享内容,同步信息。
1、首先需要将需要授权的用户引导到以下地址:
https://api.weibo.com/oauth2/a ... T_URI
如果用户同意授权,页面跳转至YOUR_REGISTERED_REDIRECT_URI/?code=CODE:
2、然后会根据上面得到的代码兑换Access Token:
https://api.weibo.com/oauth2/a ... DCODE
返回值:JSON
{
"access_token": "SlAV32hkKG",
"remind_in": 3600,
"expires_in": 3600
}
3、最后使用获取到的OAuth2.0 Access Token调用API获取用户身份,完成用户登录。
为了方便,我们先把get和post封装到application下的common.php中:
应用公共文件common.php:
function get( $url, $_header = NULL )
{
$curl = curl_init();
//curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, false);
if( stripos($url, 'https://') !==FALSE )
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if ( $_header != NULL )
{
curl_setopt($curl, CURLOPT_HTTPHEADER, $_header);
}
$ret = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if( intval( $info["http_code"] ) == 200 )
{
return $ret;
}
return false;
}
/*
* post method
*/
function post( $url, $param )
{
$oCurl = curl_init ();
curl_setopt ( $oCurl, CURLOPT_SAFE_UPLOAD, false);
if (stripos ( $url, "https://" ) !== FALSE) {
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYHOST, false );
}
curl_setopt ( $oCurl, CURLOPT_URL, $url );
curl_setopt ( $oCurl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $oCurl, CURLOPT_POST, true );
curl_setopt ( $oCurl, CURLOPT_POSTFIELDS, $param );
$sContent = curl_exec ( $oCurl );
$aStatus = curl_getinfo ( $oCurl );
curl_close ( $oCurl );
if (intval ( $aStatus ["http_code"] ) == 200) {
return $sContent;
} else {
return false;
}
}
控制器处理代码Login.php:
class Login extends \think\Controller
{
public function index()
{
$key = "****";
$redirect_uri = "***微博应用安全域名***/?backurl=***项目本地域名***/home/login/webLogin?";
//授权后将页面重定向到本地项目
$redirect_uri = urlencode($redirect_uri);
$wb_url = "https://api.weibo.com/oauth2/authorize?client_id={$key}&response_type=code&redirect_uri={$redirect_uri}";
$this -> assign('wb_url',$wb_url);
return view('login');
}
public function webLogin(){
$key = "*****";
//接收code值
$code = input('get.code');
//换取Access Token: post方式请求 替换参数: client_id, client_secret,redirect_uri, code
$secret = "********";
$redirect_uri = "********";
$url = "https://api.weibo.com/oauth2/a ... id%3D{$key}&client_secret={$secret}&grant_type=authorization_code&redirect_uri={$redirect_uri}&code={$code}";
$token = post($url, array());
$token = json_decode($token, true);
//获取用户信息 : get方法,替换参数: access_token, uid
$url = "https://api.weibo.com/2/users/ ... en%3D{$token['access_token']}&uid={$token['uid']}";
$info = get($url);
if($info){
echo "<p>登录成功";
}
}
}
</p>
模板代码 login.html:
DOCTYPE html>
微博登录
点击这里进行微博登录
效果图:
以上内容希望对大家有所帮助。很多PHPer在进阶的时候总会遇到一些问题和瓶颈。写太多业务代码没有方向感。我不知道从哪里开始改进。整理了一些资料,包括但不限于:分布式架构、高扩展性、高性能、高并发、服务器性能调优、TP6、laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等诸多知识点。进阶进阶干货可以免费分享给你。如果您需要点击这里,请点击链接或关注我们下面的专栏 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(微博登录访问第三方网站需要注意哪些问题和瓶颈?)
在平时的项目开发过程中,除了注册网站账号登录外,还可以调用第三方接口登录网站。这里我们以微博登录为例。微博登录包括身份认证、用户关系和内容传播。允许用户使用微博账号登录,访问第三方网站,分享内容,同步信息。
1、首先需要将需要授权的用户引导到以下地址:
https://api.weibo.com/oauth2/a ... T_URI
如果用户同意授权,页面跳转至YOUR_REGISTERED_REDIRECT_URI/?code=CODE:
2、然后会根据上面得到的代码兑换Access Token:
https://api.weibo.com/oauth2/a ... DCODE
返回值:JSON
{
"access_token": "SlAV32hkKG",
"remind_in": 3600,
"expires_in": 3600
}
3、最后使用获取到的OAuth2.0 Access Token调用API获取用户身份,完成用户登录。
为了方便,我们先把get和post封装到application下的common.php中:
应用公共文件common.php:
function get( $url, $_header = NULL )
{
$curl = curl_init();
//curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, false);
if( stripos($url, 'https://') !==FALSE )
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if ( $_header != NULL )
{
curl_setopt($curl, CURLOPT_HTTPHEADER, $_header);
}
$ret = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if( intval( $info["http_code"] ) == 200 )
{
return $ret;
}
return false;
}
/*
* post method
*/
function post( $url, $param )
{
$oCurl = curl_init ();
curl_setopt ( $oCurl, CURLOPT_SAFE_UPLOAD, false);
if (stripos ( $url, "https://" ) !== FALSE) {
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYHOST, false );
}
curl_setopt ( $oCurl, CURLOPT_URL, $url );
curl_setopt ( $oCurl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $oCurl, CURLOPT_POST, true );
curl_setopt ( $oCurl, CURLOPT_POSTFIELDS, $param );
$sContent = curl_exec ( $oCurl );
$aStatus = curl_getinfo ( $oCurl );
curl_close ( $oCurl );
if (intval ( $aStatus ["http_code"] ) == 200) {
return $sContent;
} else {
return false;
}
}
控制器处理代码Login.php:
class Login extends \think\Controller
{
public function index()
{
$key = "****";
$redirect_uri = "***微博应用安全域名***/?backurl=***项目本地域名***/home/login/webLogin?";
//授权后将页面重定向到本地项目
$redirect_uri = urlencode($redirect_uri);
$wb_url = "https://api.weibo.com/oauth2/authorize?client_id={$key}&response_type=code&redirect_uri={$redirect_uri}";
$this -> assign('wb_url',$wb_url);
return view('login');
}
public function webLogin(){
$key = "*****";
//接收code值
$code = input('get.code');
//换取Access Token: post方式请求 替换参数: client_id, client_secret,redirect_uri, code
$secret = "********";
$redirect_uri = "********";
$url = "https://api.weibo.com/oauth2/a ... id%3D{$key}&client_secret={$secret}&grant_type=authorization_code&redirect_uri={$redirect_uri}&code={$code}";
$token = post($url, array());
$token = json_decode($token, true);
//获取用户信息 : get方法,替换参数: access_token, uid
$url = "https://api.weibo.com/2/users/ ... en%3D{$token['access_token']}&uid={$token['uid']}";
$info = get($url);
if($info){
echo "<p>登录成功";
}
}
}
</p>
模板代码 login.html:
DOCTYPE html>
微博登录
点击这里进行微博登录
效果图:



以上内容希望对大家有所帮助。很多PHPer在进阶的时候总会遇到一些问题和瓶颈。写太多业务代码没有方向感。我不知道从哪里开始改进。整理了一些资料,包括但不限于:分布式架构、高扩展性、高性能、高并发、服务器性能调优、TP6、laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等诸多知识点。进阶进阶干货可以免费分享给你。如果您需要点击这里,请点击链接或关注我们下面的专栏
使用新浪微博开放平台api同步微博内容至自己网站(新浪微博用户数据是必须通过微博开放平台的关于你的理解)
网站优化 • 优采云 发表了文章 • 0 个评论 • 70 次浏览 • 2021-08-31 01:02
楼主的问题比较复杂,我一一说,我能说什么...
首先说说你要实现的功能,其实很简单
通过新浪的开放平台实现这个功能其实只是为了降低你的开发难度
毕竟新浪有完整的SDK供你实现功能
不过,鉴于前几天新浪微博关闭了非客户端获取非当前登录用户好友列表的功能,新浪微博的开放平台可能不是一个好的选择。你现在
如果你不需要微薄的开放平台,那么你的选择就是拉页面。
拉页面很简单,加上新浪这段时间一直在调查这件事,就不多说了。
通常情况下,要在新浪微博上拉取用户数据,必须通过微博开放平台
至于你对开放平台的理解,这是完全错误的。您认为开放平台意味着应用程序可以向公众开放吗?事实上,开放平台意味着新浪会通过某种形式的授权向你开放他的数据,而不是你向公众开放。
最后,关于编程语言的选择,考虑到你是计算机大四学生,其实有很多选择,因为这不是一个难的应用
如果使用新浪微博开放平台,制作应用需要网络请求、Oauth2验证、Json解析、文本创建等相关知识
如果说拉页面,制作一个应用需要页面下载、JS解析、cookie处理、Http头制作、文字制作等相关知识
我个人觉得对于你提到的三种语言,上面列表中可能用到的知识几乎是一样的...
如果你追求速度,最好用Java
PHP 有点麻烦
Python 确实是个不错的选择
至于你最后提到的Python的功能,我只能说所有语言都可以做你提到的“处理文本并输出到文件”的事情。一般来说,专攻这种东西的应该是Shell Script...
Python主要用于服务器后端...(如果你说错了,Python程序员不要打我)服务器后端可以不仅仅是文本处理,还可以是网络连接处理和数据库交互...Don不用Python太简单了... 查看全部
使用新浪微博开放平台api同步微博内容至自己网站(新浪微博用户数据是必须通过微博开放平台的关于你的理解)
楼主的问题比较复杂,我一一说,我能说什么...
首先说说你要实现的功能,其实很简单
通过新浪的开放平台实现这个功能其实只是为了降低你的开发难度
毕竟新浪有完整的SDK供你实现功能
不过,鉴于前几天新浪微博关闭了非客户端获取非当前登录用户好友列表的功能,新浪微博的开放平台可能不是一个好的选择。你现在
如果你不需要微薄的开放平台,那么你的选择就是拉页面。
拉页面很简单,加上新浪这段时间一直在调查这件事,就不多说了。
通常情况下,要在新浪微博上拉取用户数据,必须通过微博开放平台
至于你对开放平台的理解,这是完全错误的。您认为开放平台意味着应用程序可以向公众开放吗?事实上,开放平台意味着新浪会通过某种形式的授权向你开放他的数据,而不是你向公众开放。
最后,关于编程语言的选择,考虑到你是计算机大四学生,其实有很多选择,因为这不是一个难的应用
如果使用新浪微博开放平台,制作应用需要网络请求、Oauth2验证、Json解析、文本创建等相关知识
如果说拉页面,制作一个应用需要页面下载、JS解析、cookie处理、Http头制作、文字制作等相关知识
我个人觉得对于你提到的三种语言,上面列表中可能用到的知识几乎是一样的...
如果你追求速度,最好用Java
PHP 有点麻烦
Python 确实是个不错的选择
至于你最后提到的Python的功能,我只能说所有语言都可以做你提到的“处理文本并输出到文件”的事情。一般来说,专攻这种东西的应该是Shell Script...
Python主要用于服务器后端...(如果你说错了,Python程序员不要打我)服务器后端可以不仅仅是文本处理,还可以是网络连接处理和数据库交互...Don不用Python太简单了...
使用新浪微博开放平台api同步微博内容至自己网站(Cliff一步添加微博第三方登录的功能有哪些?(图) )
网站优化 • 优采云 发表了文章 • 0 个评论 • 78 次浏览 • 2021-08-31 01:01
)
Cliff 发表于天马营
在《Github第三方登录-通用第三方登录实现》中,我们实现了通用的第三方登录框架,包括OAUth的基本流程和最简单的用户注册。但是,不同的第三方登录由于细节不同,仍然存在很多陷阱。今天我们就从完善开发者信息入手,逐步添加微博第三方登录功能。
注意,完成微博第三方登录功能需要有域名和修改域名网站的权限,审核时需要修改主页。这里我们假设我们的域名是。
完善用户信息
首先我们进入新浪微博开发平台,登录我们的微博账号,点击右上角的【我的应用】,我们会看到相关的功能和相应的需要改进的信息。
我们可以看到,如果需要添加第三方应用,只需要填写基本信息即可,但是需要注意的是,如果添加微博第三方登录功能后需要通过审核,还需要通过【身份认证】。这里我们只需要填写【基本信息】即可。
点击右侧的【基本信息】,根据需要添加相关信息,最后完成邮箱验证,我们的基本信息就添加好了。然后我们需要添加网站相关信息:
选择左上角的【微连接】->【网站Access】,然后选择【立即访问】:
需要验证的是我们是否拥有网站的owner权限,需要修改网页对应的域名添加一行代码,根据需要修改。
验证通过后,我们可以在本地测试第三方登录。
添加第三方通用登录框架
《Github 第三方登录-通用第三方登录实现》一文完成了通用的第三方登录框架。如果想了解广义第三方登录的实现,请阅读《Github第三方登录-广义第三方登录实现》。
我们直接复制上面的代码,去掉github相关的代码:
添加新浪微博OAuthService
根据《Github第三方登录-通用第三方登录实现》,我们需要为微博添加两个类,SinaWeiboAPI和SinaWeiboOAuthService,但是SinaWeiboAPI已经在scribe中提供了,我们可以直接使用。接下来我们将添加新浪微博OAuthService:
public class SinaWeiboOAuthService extends OAuthServiceDeractor {
private static final String PROTECTED_RESOURCE_URL = "https://api.weibo.com/oauth2/get_token_info";
public SinaWeiboOAuthService(OAuthService oAuthService) {
super(oAuthService, OAuthTypes.SINA_WEIBO);
}
@Override
public OAuthUser getOAuthUser(Token accessToken) {
OAuthRequest request = new OAuthRequest(Verb.POST, PROTECTED_RESOURCE_URL);
this.signRequest(accessToken, request);
Response response = request.send();
OAuthUser oAuthUser = new OAuthUser();
oAuthUser.setoAuthType(getoAuthType());
oAuthUser.setoAuthId(JSONPath.eval(JSON.parse(response.getBody()), "$.uid").toString());
oAuthUser.setUser(new User());
return oAuthUser;
}
}
新浪微博OAuthService需要完成用户信息的获取,并转换成OAuthUser对象。新浪微博用户信息及相关参数的获取方式请参考新浪微博官方文档。
配置 OAuthService
最后根据我们在新浪微博中定义的appKey、appSecret和callback_uri来配置SinaWeiboOAuthService:
修改主机
因为微博的第三方登录是绑定域名的,所以需要我们的hosts文件,绑定本地的127.0.0.1。
windows系统hosts文件一般在C:\WINDOWS\system32\drivers\etc
Mac系统hosts文件地址一般为:/etc/hosts
在 hosts 文件中添加以下行:
127.0.0.1 tianmaying.com
调试
进入根目录,运行sudo mvn spring-boot:run命令访问课程|天马营地(之前在修改hosts的时候填写申请信息和修改域名,这三个域名一定要一样),因为必须通过域名Access来完成,所以我们需要监听80端口,并且需要运行时超级管理员权限。
注意:代码上线后需要新浪微博审核,进入新浪微博-我的申请,按要求填写。
查看全部
使用新浪微博开放平台api同步微博内容至自己网站(Cliff一步添加微博第三方登录的功能有哪些?(图)
)
Cliff 发表于天马营
在《Github第三方登录-通用第三方登录实现》中,我们实现了通用的第三方登录框架,包括OAUth的基本流程和最简单的用户注册。但是,不同的第三方登录由于细节不同,仍然存在很多陷阱。今天我们就从完善开发者信息入手,逐步添加微博第三方登录功能。
注意,完成微博第三方登录功能需要有域名和修改域名网站的权限,审核时需要修改主页。这里我们假设我们的域名是。
完善用户信息
首先我们进入新浪微博开发平台,登录我们的微博账号,点击右上角的【我的应用】,我们会看到相关的功能和相应的需要改进的信息。

我们可以看到,如果需要添加第三方应用,只需要填写基本信息即可,但是需要注意的是,如果添加微博第三方登录功能后需要通过审核,还需要通过【身份认证】。这里我们只需要填写【基本信息】即可。
点击右侧的【基本信息】,根据需要添加相关信息,最后完成邮箱验证,我们的基本信息就添加好了。然后我们需要添加网站相关信息:

选择左上角的【微连接】->【网站Access】,然后选择【立即访问】:

需要验证的是我们是否拥有网站的owner权限,需要修改网页对应的域名添加一行代码,根据需要修改。
验证通过后,我们可以在本地测试第三方登录。
添加第三方通用登录框架
《Github 第三方登录-通用第三方登录实现》一文完成了通用的第三方登录框架。如果想了解广义第三方登录的实现,请阅读《Github第三方登录-广义第三方登录实现》。
我们直接复制上面的代码,去掉github相关的代码:

添加新浪微博OAuthService
根据《Github第三方登录-通用第三方登录实现》,我们需要为微博添加两个类,SinaWeiboAPI和SinaWeiboOAuthService,但是SinaWeiboAPI已经在scribe中提供了,我们可以直接使用。接下来我们将添加新浪微博OAuthService:
public class SinaWeiboOAuthService extends OAuthServiceDeractor {
private static final String PROTECTED_RESOURCE_URL = "https://api.weibo.com/oauth2/get_token_info";
public SinaWeiboOAuthService(OAuthService oAuthService) {
super(oAuthService, OAuthTypes.SINA_WEIBO);
}
@Override
public OAuthUser getOAuthUser(Token accessToken) {
OAuthRequest request = new OAuthRequest(Verb.POST, PROTECTED_RESOURCE_URL);
this.signRequest(accessToken, request);
Response response = request.send();
OAuthUser oAuthUser = new OAuthUser();
oAuthUser.setoAuthType(getoAuthType());
oAuthUser.setoAuthId(JSONPath.eval(JSON.parse(response.getBody()), "$.uid").toString());
oAuthUser.setUser(new User());
return oAuthUser;
}
}
新浪微博OAuthService需要完成用户信息的获取,并转换成OAuthUser对象。新浪微博用户信息及相关参数的获取方式请参考新浪微博官方文档。
配置 OAuthService
最后根据我们在新浪微博中定义的appKey、appSecret和callback_uri来配置SinaWeiboOAuthService:
修改主机
因为微博的第三方登录是绑定域名的,所以需要我们的hosts文件,绑定本地的127.0.0.1。
windows系统hosts文件一般在C:\WINDOWS\system32\drivers\etc
Mac系统hosts文件地址一般为:/etc/hosts
在 hosts 文件中添加以下行:
127.0.0.1 tianmaying.com
调试
进入根目录,运行sudo mvn spring-boot:run命令访问课程|天马营地(之前在修改hosts的时候填写申请信息和修改域名,这三个域名一定要一样),因为必须通过域名Access来完成,所以我们需要监听80端口,并且需要运行时超级管理员权限。
注意:代码上线后需要新浪微博审核,进入新浪微博-我的申请,按要求填写。

新浪微博API关闭:想用.js是我之前没用过的
网站优化 • 优采云 发表了文章 • 0 个评论 • 94 次浏览 • 2021-08-24 04:19
新浪微博API关闭:想用.js是我之前没用过的
我一直在使用新浪微博API进行数据同步。今年年初,大约是1月8日。微博 API 突然不可用,原因不明。接口调用不断出现 403 错误。私信“微博开发平台”联系一直是机器回复。
所以我猜新浪微博关闭了它的API。我猜可能是因为微博太难盈利了,所以就跟腾讯学了,把数据都关了,赚了很多钱。
但是,我在微博上发布了很多数据,但是微博至今还没有提供数据备份,所以我还需要寻找其他方式来同步和备份数据,所以我想使用微博来转换RSS的方式用于数据导出。
11年前做过一个PHP微博转换项目,但是时间太久,里面的数据结构完全变了,不能用了,于是上网搜了一下。看看有没有现成的项目,结果发现github上有个weibo-rss的项目可以用,但是部署用的是Node.js,之前没用过。
我在国外买的云服务器使用的是LNMP(Linux-Nginx-MySQL-PHP)环境。 web服务器是Nginx,体积小,稳定,占用资源少。一个低调的服务器可以做一个动态的网站。我尝试将此 Node.js 项目部署到此服务器。
服务器没有安装Node.js,需要先安装环境。面板中有一个“PM2管理器”,就是一个node.js管理器,内置了node.js + npm + nvm + pm2,可以一键安装。
安装环境后,按照项目说明开始手动部署。
git 克隆
cd weibo-rss
npm 安装
pm2 启动 bin/www
按照之前部署php的思路,部署到wwwroot下的一个目录下。从网页访问后,页面可以出来,但是RSS提示“获取数据失败”。
后来咨询了项目作者,发现项目部署到了3000端口,而不是Nginx的80和443端口。我用3000端口的地址访问,可以正常获取数据。
当然,我还是希望最终能在Nginx下使用。在 Nginx 中设置反向代理并将目录映射到 3000 端口以访问 Node.js 项目的 80 和 443 端口。
() () 查看全部
新浪微博API关闭:想用.js是我之前没用过的

我一直在使用新浪微博API进行数据同步。今年年初,大约是1月8日。微博 API 突然不可用,原因不明。接口调用不断出现 403 错误。私信“微博开发平台”联系一直是机器回复。
所以我猜新浪微博关闭了它的API。我猜可能是因为微博太难盈利了,所以就跟腾讯学了,把数据都关了,赚了很多钱。
但是,我在微博上发布了很多数据,但是微博至今还没有提供数据备份,所以我还需要寻找其他方式来同步和备份数据,所以我想使用微博来转换RSS的方式用于数据导出。
11年前做过一个PHP微博转换项目,但是时间太久,里面的数据结构完全变了,不能用了,于是上网搜了一下。看看有没有现成的项目,结果发现github上有个weibo-rss的项目可以用,但是部署用的是Node.js,之前没用过。
我在国外买的云服务器使用的是LNMP(Linux-Nginx-MySQL-PHP)环境。 web服务器是Nginx,体积小,稳定,占用资源少。一个低调的服务器可以做一个动态的网站。我尝试将此 Node.js 项目部署到此服务器。
服务器没有安装Node.js,需要先安装环境。面板中有一个“PM2管理器”,就是一个node.js管理器,内置了node.js + npm + nvm + pm2,可以一键安装。
安装环境后,按照项目说明开始手动部署。
git 克隆
cd weibo-rss
npm 安装
pm2 启动 bin/www
按照之前部署php的思路,部署到wwwroot下的一个目录下。从网页访问后,页面可以出来,但是RSS提示“获取数据失败”。
后来咨询了项目作者,发现项目部署到了3000端口,而不是Nginx的80和443端口。我用3000端口的地址访问,可以正常获取数据。
当然,我还是希望最终能在Nginx下使用。在 Nginx 中设置反向代理并将目录映射到 3000 端口以访问 Node.js 项目的 80 和 443 端口。

() ()
Java调用新浪微博API接口发微博,逐条讲解,绝对清晰
网站优化 • 优采云 发表了文章 • 0 个评论 • 300 次浏览 • 2021-08-21 01:32
Java调用新浪微博API接口发送微博,一一讲解,绝对清晰
最近在做一个课程设计,用微博控制树莓派,用树莓派控制发光二极管的开和关。主要设计分为两层。上层是使用Java调用新浪微博API实现微博。监控,当我的微博回复时,它会自动读取评论内容,并根据评论指令的内容确定树莓派的控制动作。下层是使用C语言调用操作系统底层接口,通过树莓派GPIO接口来控制发光二极管的闪烁和开启和关闭。
由于网上教程很老了,而且最近微博界面也发生了很大的变化,所以决定写一篇新的详细的博文。如果能帮到你,那将是我莫大的荣幸。同时也非常希望能与大家交流。如果您有任何问题,请在评论中回复我。
本文将在最后一步一步讲解如何申请微博接口,以及如何用Java发布自己的微博。 【首先你得有一个微博账号】
一、申请成为开发者
在此处申请。点击“我的申请”,您可以看到身份认证:未认证,您已经完成了您应该做的。我不会在这里详细介绍。审稿很快,不到一天就通过了。
之后应该是这样的(哈哈,欢迎共同粉丝):
二、创建应用程序
此处的在线教程具有误导性。我跟着那些教程,最终把我拖进了坑里。我已经爬出来了。希望你不要再陷进去了。
如果要使用Java来控制微博,在创建应用程序时不能创建“站内应用程序”。您必须创建一个“移动应用程序”。请注意这一点,否则您将无法通过授权验证步骤。
“微连接”-“移动应用”-“立即访问”-“继续创建”
现在我们来到了填写信息的地方,自己写一个应用名称(以后改名会很麻烦,请一次性填写),例如“手机控制树莓派”,客户端选择“手机”“应用平台只要是Android,但没有效果。然后“创建”。好了,现在我们进入了一个新的界面,我们只是为了测试,因此无需审核,除非您想在线提交申请。
三、重要信息设置和记录
这一步很重要,直接关系到以后的正确访问。
左侧面板:“应用信息”-“高级信息”
查看“OAuth2.0 授权设置”,点击“编辑”。 “授权回调页面:”和“取消授权回调页面:”非常重要。那些创建了“站内应用”的人应该在这里哭,因为他们不能修改“授权回调页面:”。 . .
那怎么改呢?两者都改为:这是微博的默认设置,我们测试就够了。
如图所示:
再次点击“基本信息”,
如图所示:
注意:APP Key和App Secret,后面会用到。
四、download 微博Java SDK
过来
下载压缩包:weibo4j-oauth2-beta3.1.1.zip
五、将 SDK 导入 Eclipse
什么?您是否一直使用文本编辑器来编写 Java?嗯,听我的劝告,我写这东西的时候应该改用Eclipse,不然就累死了。
打开Eclipse,“文件”-“导入”-“常规下的Existing Projects into Workspace”-“选择归档文件”-选择刚才的SDK压缩包-“完成”。
导入现已完成。
六、修改配置信息
打开图中的config.properties文件,将“client_ID”和“client_SERCRET”后面的值改成你记下的“App Key”和“App Secret”。将“redirect_URI”的值更改为
保存。
七、应用授权
如图所示:
编译并执行 OAuth4Code.java 文件。
您的浏览器将被自动调用以打开授权页面。如下图:
点击“授权”。
转到下图:
不要急于关闭浏览器!请复制地址栏中code=后面的字符串。
回到 Eclipse,下面的 Console 里有什么在等着你。完成后按回车。[回车]:
是的,就是他。粘贴刚刚复制的字符串,然后按 Enter。
好的,请稍等几秒钟,让您的授权信息返回。
AccessToken [accessToken=xxxxxxxxxxxxxxx, expireIn=157679999, refreshToken=,uid=xxxxxxxxx]
“access_token”后面的字符串和“uid”后面的数字很重要,所以写下来。
现在您可以关闭浏览器了。
这里提醒一下,如果应用程序是作为“现场应用程序”而不是“移动应用程序”创建的,那么这一步将不会成功。您将始终看到“error:redirect_uri_mismatch”页面。
八:发微博
在微博SDK包中,你可以看看examples下的很多程序。这些是示例,涵盖了 SDK 可以执行的所有操作。您只需要参考它们并编写它们即可。
weibo4j.examples.timeline 包中的UpdateStatus.java 是一个发微博的例子。
我们在src里面新建了一个叫myweibo的包,下面这些类就不用创建了,随意。
我会演示如何在微博上发帖。
在我的微博下新建一个类SendWeibo.java
复制examples-weibo4j.examples.timeline-UpdateStatus.java示例程序中main方法的整个主体,粘贴后Eclipse会自动导入需要引用的包。
将 String access_token= 替换为您刚才的 access_token 值。 String statuses=您的微博正文如下。
更改完成后:
然后只要运行这段Java代码,只要不报错就成功了。看看你的微博。
<p>注意:如果你不知道什么是函数(我还是习惯叫它函数,而不是方法),也不知道它的参数的含义,请将光标移到函数上。<//p
pimg src='https://www.programminghunter.com/images/138/f7/f758a711d56952f39a3afcf3e786f40a.png' alt=''//p
pSDK中提供的各种功能都非常实用,微博获取什么,获取评论,获取评论ID,回复评论,获取地理位置,获取照片,发布照片,获取粉丝关系,获取朋友圈微博等等。等等,太多了,我们自己试试吧。/p
p九:发布程序:/p
p如果想把程序运行在其他地方,比如树莓派Linux或者虚拟机中的Linux,有几点需要注意。/p
p让我们先发布程序:/p
p我们右击weibo4j-oauth2项目,选择“导出”,然后如图:/p
pimg src='https://www.programminghunter.com/images/391/44/4438e353d2bb3ab0314fca661a57a407.png' alt=''//p
p下一步:/p
pimg src='https://www.programminghunter.com/images/447/a7/a78bc46ab785219a4b7f4f47126f730f.png' alt=''//p
p哪个程序是入口点,启动配置会选择哪个。这里我们正在执行微博程序:SendWeibo。/p
p选择路径,在下方的图书馆办理中选择第二个保险点。然后完成,可能会弹出警告,不要着急,点击确定。/p
p然后就生成了。然后一双击jar包,程序就一闪而过,留下一个weibo.log文件,就是一个日志。如果出现错误,您可以查看日志以查找原因。现在程序执行完毕,它发布了另一个微博。/p
p你可以把这个文件拖到虚拟机的Linux上。我们已经看到 Java 是如何到处运行的。结果运行java -jar 1.jar后报错。发生了什么?/p
p仔细看错误信息,上面写着.UnknownHostException,然后看错误信息中是否写了InetAddress.getLocalHost()方法。没错。/p
p解决方案:/p
p首先,ifconfig,查看你的IP。无论是LAN IP还是外部IP都没有关系。它只需要您看到的本地 IP。/p
p修改host文件/etc/hosts并添加一行,/p
p[普通]/p
p你的 ip 你的主机名#KD.localdomain 是我的主机名/p
p至于如何查看主机名,应该收录在错误信息中,比如localhost.localdomain。 KD.localdomain 是我自己改的。您还可以检查 /etc/hosts 以确认您的主机名。/p
p做完这个修改后,再次尝试运行1.jar,应该可以成功。我不会截图。开启虚拟机很麻烦。/p
pPS:发微博后试一下,不要乱发,这个效果类似刷屏,会被打。/p
p新浪微博的网址是这样的:三部分。/p
p第一部分(绿色部分)是新浪微博的域名,第二部分(红色部分)是博主Uid,第三部分(蓝色部分)是一串看似随机的字符串。/p
p如果可以通过该方法计算出蓝色字符串与返回数组的对应关系,解决起来就容易多了。/p
p先将蓝色字符串分组,从后到前4个字符,得到如下三组字符:/p
pz/p
p8Elg/p
pBLQ/p
p将它们转换为 62 的十六进制值是 35, 2061702, 8999724 并且将它们组合起来就是一个类似于这个字符串的 35224 字符串/p
p通过发现返回的二维数组中有一个[mid]字段,返回结果为35224.,正好对应。/p
pprespan style="color: #008080;" 1/span span style="color: #0000ff;"package/spanspan style="color: #000000;" step0;
/spanspan style="color: #008080;" 2/span
span style="color: #008080;" 3/span
span style="color: #008080;" 4/span span style="color: #008000;"/**/span
span style="color: #008080;" 5/span span style="color: #008000;" *
/spanspan style="color: #008080;" 6/span span style="color: #008000;" * @ClassName: Mid2IdUtil Java版
/spanspan style="color: #008080;" 7/span span style="color: #008000;" * @Description: 新浪uid转url (id转mid)
/spanspan style="color: #008080;" 8/span span style="color: #008000;" * /spanspan style="color: #808080;"@author/spanspan style="color: #008000;" zeze
/spanspan style="color: #008080;" 9/span span style="color: #008000;" * @date 2016年4月10日 上午10:49:40
/spanspan style="color: #008080;" 10/span span style="color: #008000;" *
/spanspan style="color: #008080;" 11/span span style="color: #008000;"*//span
span style="color: #008080;" 12/span span style="color: #0000ff;"public/span span style="color: #0000ff;"class/spanspan style="color: #000000;" Id2MidUtil {
/spanspan style="color: #008080;" 13/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/span span style="color: #0000ff;"void/spanspan style="color: #000000;" main(String[] args) {
/spanspan style="color: #008080;" 14/span System.out.println(Uid2Mid("Aw8Wrzaes"span style="color: #000000;"));
/spanspan style="color: #008080;" 15/span System.out.println(Mid2Uid("3676608718380816"));span style="color: #008000;"///spanspan style="color: #008000;"Mid2Id/span
span style="color: #008080;" 16/span span style="color: #000000;" }
/spanspan style="color: #008080;" 17/span span style="color: #0000ff;"private/span span style="color: #0000ff;"static/span String[] str62keys = { "0", "1", "2", "3", "4", "5", "6"span style="color: #000000;",
/spanspan style="color: #008080;" 18/span "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j"span style="color: #000000;",
/spanspan style="color: #008080;" 19/span "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w"span style="color: #000000;",
/spanspan style="color: #008080;" 20/span "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J"span style="color: #000000;",
/spanspan style="color: #008080;" 21/span "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W"span style="color: #000000;",
/spanspan style="color: #008080;" 22/span "X", "Y", "Z"span style="color: #000000;" };
/spanspan style="color: #008080;" 23/span
span style="color: #008080;" 24/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/spanspan style="color: #000000;" String IntToEnode62(Integer int10) {
/spanspan style="color: #008080;" 25/span String s62 = ""span style="color: #000000;";
/spanspan style="color: #008080;" 26/span span style="color: #0000ff;"int/span r = 0span style="color: #000000;";
/spanspan style="color: #008080;" 27/span span style="color: #0000ff;"while/span (int10 != 0span style="color: #000000;") {
/spanspan style="color: #008080;" 28/span r = int10 % 62span style="color: #000000;";
/spanspan style="color: #008080;" 29/span s62 = str62keys[r] +span style="color: #000000;" s62;
/spanspan style="color: #008080;" 30/span int10 = (span style="color: #0000ff;"int/span) Math.floor(int10 / 62.0span style="color: #000000;");
/spanspan style="color: #008080;" 31/span span style="color: #000000;" }
/spanspan style="color: #008080;" 32/span span style="color: #0000ff;"return/spanspan style="color: #000000;" s62;
/spanspan style="color: #008080;" 33/span span style="color: #000000;" }
/spanspan style="color: #008080;" 34/span
span style="color: #008080;" 35/span span style="color: #008000;"///spanspan style="color: #008000;"62进制转成10进制/span
span style="color: #008080;" 36/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/spanspan style="color: #000000;" String Str62toInt(String str62)
/spanspan style="color: #008080;" 37/span span style="color: #000000;" {
/spanspan style="color: #008080;" 38/span span style="color: #0000ff;"long/span i64 = 0span style="color: #000000;";
/spanspan style="color: #008080;" 39/span span style="color: #0000ff;"for/span (span style="color: #0000ff;"int/span i = 0; i < str62.length(); i++span style="color: #000000;")
/spanspan style="color: #008080;" 40/span span style="color: #000000;" {
/spanspan style="color: #008080;" 41/span span style="color: #0000ff;"long/span Vi = (span style="color: #0000ff;"long/span)Math.pow(62, (str62.length() - i - 1span style="color: #000000;"));
/spanspan style="color: #008080;" 42/span String t = str62.substring(i,i+1span style="color: #000000;");
/spanspan style="color: #008080;" 43/span
span style="color: #008080;" 44/span i64 += Vi *span style="color: #000000;" findindex(t);
/spanspan style="color: #008080;" 45/span span style="color: #000000;" }
/spanspan style="color: #008080;" 46/span span style="color: #008000;"///spanspan style="color: #008000;" System.out.println(i64);/span
span style="color: #008080;" 47/span span style="color: #0000ff;"return/spanspan style="color: #000000;" Long.toString(i64);
/spanspan style="color: #008080;" 48/span span style="color: #000000;" }
/spanspan style="color: #008080;" 49/span
span style="color: #008080;" 50/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/span span style="color: #0000ff;"int/spanspan style="color: #000000;" findindex(String t)
/spanspan style="color: #008080;" 51/span span style="color: #000000;" {
/spanspan style="color: #008080;" 52/span span style="color: #0000ff;"int/span index=0span style="color: #000000;";
/spanspan style="color: #008080;" 53/span span style="color: #0000ff;"for/span(span style="color: #0000ff;"int/span i=0;istr62keys.length;i++span style="color: #000000;")
/spanspan style="color: #008080;" 54/span span style="color: #000000;" {
/spanspan style="color: #008080;" 55/span span style="color: #0000ff;"if/spanspan style="color: #000000;"(str62keys[i].equals(t)){
/spanspan style="color: #008080;" 56/span index=span style="color: #000000;"i;
/spanspan style="color: #008080;" 57/span span style="color: #0000ff;"break/spanspan style="color: #000000;";
/spanspan style="color: #008080;" 58/span span style="color: #000000;" }
/spanspan style="color: #008080;" 59/span span style="color: #000000;" }
/spanspan style="color: #008080;" 60/span span style="color: #0000ff;"return/spanspan style="color: #000000;" index;
/spanspan style="color: #008080;" 61/span span style="color: #000000;" }
/spanspan style="color: #008080;" 62/span
span style="color: #008080;" 63/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/spanspan style="color: #000000;" String Uid2Mid(String mid)
/spanspan style="color: #008080;" 64/span span style="color: #000000;" {
/spanspan style="color: #008080;" 65/span String id = ""span style="color: #000000;";
/spanspan style="color: #008080;" 66/span span style="color: #0000ff;"for/span (span style="color: #0000ff;"int/span i = mid.length() - 4; i -4; i = i - 4) span style="color: #008000;"///spanspan style="color: #008000;"从最后往前以4字节为一组读取URL字符/span
span style="color: #008080;" 67/span span style="color: #000000;" {
/spanspan style="color: #008080;" 68/span span style="color: #0000ff;"int/span offset1 = i < 0 ? 0span style="color: #000000;" : i;
/spanspan style="color: #008080;" 69/span span style="color: #0000ff;"int/span len = i < 0 ? mid.length() % 4 : 4span style="color: #000000;";
/spanspan style="color: #008080;" 70/span
span style="color: #008080;" 71/span String str = mid.substring(offset1, offset1+span style="color: #000000;"len);
/spanspan style="color: #008080;" 72/span span style="color: #008000;"///spanspan style="color: #008000;" System.out.println(offset1+" "+len+" "+str);/span
span style="color: #008080;" 73/span
span style="color: #008080;" 74/span str =span style="color: #000000;" Str62toInt(str);
/spanspan style="color: #008080;" 75/span
span style="color: #008080;" 76/span span style="color: #0000ff;"if/span (offset1 > 0) //若不是第一组,则不足7位补0
77 {
78 while (str.length() < 7)
79 {
80 str = "0" + str;
81 }
82 }
83 id = str + id;
84 }
85
86 return id;
87 }
88
89
90 public static String Mid2Uid(String str10) {
91 String mid = "";
92 int count = 1 ;
93 for (int i = str10.length() - 7; i > -7; i = i - 7) // 从最后往前以7字节为一组读取字符
94 {
95 int offset = i < 0 ? 0 : i;
96 int len = i < 0 ? str10.length() % 7 : 7;
97 String temp = str10.substring(offset, offset + len);
98 String url =IntToEnode62(Integer.valueOf(temp));
99 if(count!=3){//z xghm uXym 生成的链接从右往左的前2组,4位一组,不足4位的补0
100 for(int j=0;j 查看全部
Java调用新浪微博API接口发微博,逐条讲解,绝对清晰
Java调用新浪微博API接口发送微博,一一讲解,绝对清晰
最近在做一个课程设计,用微博控制树莓派,用树莓派控制发光二极管的开和关。主要设计分为两层。上层是使用Java调用新浪微博API实现微博。监控,当我的微博回复时,它会自动读取评论内容,并根据评论指令的内容确定树莓派的控制动作。下层是使用C语言调用操作系统底层接口,通过树莓派GPIO接口来控制发光二极管的闪烁和开启和关闭。
由于网上教程很老了,而且最近微博界面也发生了很大的变化,所以决定写一篇新的详细的博文。如果能帮到你,那将是我莫大的荣幸。同时也非常希望能与大家交流。如果您有任何问题,请在评论中回复我。
本文将在最后一步一步讲解如何申请微博接口,以及如何用Java发布自己的微博。 【首先你得有一个微博账号】
一、申请成为开发者
在此处申请。点击“我的申请”,您可以看到身份认证:未认证,您已经完成了您应该做的。我不会在这里详细介绍。审稿很快,不到一天就通过了。
之后应该是这样的(哈哈,欢迎共同粉丝):

二、创建应用程序
此处的在线教程具有误导性。我跟着那些教程,最终把我拖进了坑里。我已经爬出来了。希望你不要再陷进去了。
如果要使用Java来控制微博,在创建应用程序时不能创建“站内应用程序”。您必须创建一个“移动应用程序”。请注意这一点,否则您将无法通过授权验证步骤。
“微连接”-“移动应用”-“立即访问”-“继续创建”
现在我们来到了填写信息的地方,自己写一个应用名称(以后改名会很麻烦,请一次性填写),例如“手机控制树莓派”,客户端选择“手机”“应用平台只要是Android,但没有效果。然后“创建”。好了,现在我们进入了一个新的界面,我们只是为了测试,因此无需审核,除非您想在线提交申请。
三、重要信息设置和记录
这一步很重要,直接关系到以后的正确访问。
左侧面板:“应用信息”-“高级信息”
查看“OAuth2.0 授权设置”,点击“编辑”。 “授权回调页面:”和“取消授权回调页面:”非常重要。那些创建了“站内应用”的人应该在这里哭,因为他们不能修改“授权回调页面:”。 . .
那怎么改呢?两者都改为:这是微博的默认设置,我们测试就够了。
如图所示:

再次点击“基本信息”,
如图所示:

注意:APP Key和App Secret,后面会用到。
四、download 微博Java SDK
过来
下载压缩包:weibo4j-oauth2-beta3.1.1.zip
五、将 SDK 导入 Eclipse
什么?您是否一直使用文本编辑器来编写 Java?嗯,听我的劝告,我写这东西的时候应该改用Eclipse,不然就累死了。
打开Eclipse,“文件”-“导入”-“常规下的Existing Projects into Workspace”-“选择归档文件”-选择刚才的SDK压缩包-“完成”。
导入现已完成。
六、修改配置信息

打开图中的config.properties文件,将“client_ID”和“client_SERCRET”后面的值改成你记下的“App Key”和“App Secret”。将“redirect_URI”的值更改为
保存。
七、应用授权
如图所示:

编译并执行 OAuth4Code.java 文件。
您的浏览器将被自动调用以打开授权页面。如下图:

点击“授权”。
转到下图:

不要急于关闭浏览器!请复制地址栏中code=后面的字符串。
回到 Eclipse,下面的 Console 里有什么在等着你。完成后按回车。[回车]:
是的,就是他。粘贴刚刚复制的字符串,然后按 Enter。
好的,请稍等几秒钟,让您的授权信息返回。
AccessToken [accessToken=xxxxxxxxxxxxxxx, expireIn=157679999, refreshToken=,uid=xxxxxxxxx]
“access_token”后面的字符串和“uid”后面的数字很重要,所以写下来。
现在您可以关闭浏览器了。
这里提醒一下,如果应用程序是作为“现场应用程序”而不是“移动应用程序”创建的,那么这一步将不会成功。您将始终看到“error:redirect_uri_mismatch”页面。
八:发微博
在微博SDK包中,你可以看看examples下的很多程序。这些是示例,涵盖了 SDK 可以执行的所有操作。您只需要参考它们并编写它们即可。
weibo4j.examples.timeline 包中的UpdateStatus.java 是一个发微博的例子。
我们在src里面新建了一个叫myweibo的包,下面这些类就不用创建了,随意。

我会演示如何在微博上发帖。
在我的微博下新建一个类SendWeibo.java
复制examples-weibo4j.examples.timeline-UpdateStatus.java示例程序中main方法的整个主体,粘贴后Eclipse会自动导入需要引用的包。
将 String access_token= 替换为您刚才的 access_token 值。 String statuses=您的微博正文如下。
更改完成后:

然后只要运行这段Java代码,只要不报错就成功了。看看你的微博。

<p>注意:如果你不知道什么是函数(我还是习惯叫它函数,而不是方法),也不知道它的参数的含义,请将光标移到函数上。<//p
pimg src='https://www.programminghunter.com/images/138/f7/f758a711d56952f39a3afcf3e786f40a.png' alt=''//p
pSDK中提供的各种功能都非常实用,微博获取什么,获取评论,获取评论ID,回复评论,获取地理位置,获取照片,发布照片,获取粉丝关系,获取朋友圈微博等等。等等,太多了,我们自己试试吧。/p
p九:发布程序:/p
p如果想把程序运行在其他地方,比如树莓派Linux或者虚拟机中的Linux,有几点需要注意。/p
p让我们先发布程序:/p
p我们右击weibo4j-oauth2项目,选择“导出”,然后如图:/p
pimg src='https://www.programminghunter.com/images/391/44/4438e353d2bb3ab0314fca661a57a407.png' alt=''//p
p下一步:/p
pimg src='https://www.programminghunter.com/images/447/a7/a78bc46ab785219a4b7f4f47126f730f.png' alt=''//p
p哪个程序是入口点,启动配置会选择哪个。这里我们正在执行微博程序:SendWeibo。/p
p选择路径,在下方的图书馆办理中选择第二个保险点。然后完成,可能会弹出警告,不要着急,点击确定。/p
p然后就生成了。然后一双击jar包,程序就一闪而过,留下一个weibo.log文件,就是一个日志。如果出现错误,您可以查看日志以查找原因。现在程序执行完毕,它发布了另一个微博。/p
p你可以把这个文件拖到虚拟机的Linux上。我们已经看到 Java 是如何到处运行的。结果运行java -jar 1.jar后报错。发生了什么?/p
p仔细看错误信息,上面写着.UnknownHostException,然后看错误信息中是否写了InetAddress.getLocalHost()方法。没错。/p
p解决方案:/p
p首先,ifconfig,查看你的IP。无论是LAN IP还是外部IP都没有关系。它只需要您看到的本地 IP。/p
p修改host文件/etc/hosts并添加一行,/p
p[普通]/p
p你的 ip 你的主机名#KD.localdomain 是我的主机名/p
p至于如何查看主机名,应该收录在错误信息中,比如localhost.localdomain。 KD.localdomain 是我自己改的。您还可以检查 /etc/hosts 以确认您的主机名。/p
p做完这个修改后,再次尝试运行1.jar,应该可以成功。我不会截图。开启虚拟机很麻烦。/p
pPS:发微博后试一下,不要乱发,这个效果类似刷屏,会被打。/p
p新浪微博的网址是这样的:三部分。/p
p第一部分(绿色部分)是新浪微博的域名,第二部分(红色部分)是博主Uid,第三部分(蓝色部分)是一串看似随机的字符串。/p
p如果可以通过该方法计算出蓝色字符串与返回数组的对应关系,解决起来就容易多了。/p
p先将蓝色字符串分组,从后到前4个字符,得到如下三组字符:/p
pz/p
p8Elg/p
pBLQ/p
p将它们转换为 62 的十六进制值是 35, 2061702, 8999724 并且将它们组合起来就是一个类似于这个字符串的 35224 字符串/p
p通过发现返回的二维数组中有一个[mid]字段,返回结果为35224.,正好对应。/p
pprespan style="color: #008080;" 1/span span style="color: #0000ff;"package/spanspan style="color: #000000;" step0;
/spanspan style="color: #008080;" 2/span
span style="color: #008080;" 3/span
span style="color: #008080;" 4/span span style="color: #008000;"/**/span
span style="color: #008080;" 5/span span style="color: #008000;" *
/spanspan style="color: #008080;" 6/span span style="color: #008000;" * @ClassName: Mid2IdUtil Java版
/spanspan style="color: #008080;" 7/span span style="color: #008000;" * @Description: 新浪uid转url (id转mid)
/spanspan style="color: #008080;" 8/span span style="color: #008000;" * /spanspan style="color: #808080;"@author/spanspan style="color: #008000;" zeze
/spanspan style="color: #008080;" 9/span span style="color: #008000;" * @date 2016年4月10日 上午10:49:40
/spanspan style="color: #008080;" 10/span span style="color: #008000;" *
/spanspan style="color: #008080;" 11/span span style="color: #008000;"*//span
span style="color: #008080;" 12/span span style="color: #0000ff;"public/span span style="color: #0000ff;"class/spanspan style="color: #000000;" Id2MidUtil {
/spanspan style="color: #008080;" 13/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/span span style="color: #0000ff;"void/spanspan style="color: #000000;" main(String[] args) {
/spanspan style="color: #008080;" 14/span System.out.println(Uid2Mid("Aw8Wrzaes"span style="color: #000000;"));
/spanspan style="color: #008080;" 15/span System.out.println(Mid2Uid("3676608718380816"));span style="color: #008000;"///spanspan style="color: #008000;"Mid2Id/span
span style="color: #008080;" 16/span span style="color: #000000;" }
/spanspan style="color: #008080;" 17/span span style="color: #0000ff;"private/span span style="color: #0000ff;"static/span String[] str62keys = { "0", "1", "2", "3", "4", "5", "6"span style="color: #000000;",
/spanspan style="color: #008080;" 18/span "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j"span style="color: #000000;",
/spanspan style="color: #008080;" 19/span "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w"span style="color: #000000;",
/spanspan style="color: #008080;" 20/span "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J"span style="color: #000000;",
/spanspan style="color: #008080;" 21/span "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W"span style="color: #000000;",
/spanspan style="color: #008080;" 22/span "X", "Y", "Z"span style="color: #000000;" };
/spanspan style="color: #008080;" 23/span
span style="color: #008080;" 24/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/spanspan style="color: #000000;" String IntToEnode62(Integer int10) {
/spanspan style="color: #008080;" 25/span String s62 = ""span style="color: #000000;";
/spanspan style="color: #008080;" 26/span span style="color: #0000ff;"int/span r = 0span style="color: #000000;";
/spanspan style="color: #008080;" 27/span span style="color: #0000ff;"while/span (int10 != 0span style="color: #000000;") {
/spanspan style="color: #008080;" 28/span r = int10 % 62span style="color: #000000;";
/spanspan style="color: #008080;" 29/span s62 = str62keys[r] +span style="color: #000000;" s62;
/spanspan style="color: #008080;" 30/span int10 = (span style="color: #0000ff;"int/span) Math.floor(int10 / 62.0span style="color: #000000;");
/spanspan style="color: #008080;" 31/span span style="color: #000000;" }
/spanspan style="color: #008080;" 32/span span style="color: #0000ff;"return/spanspan style="color: #000000;" s62;
/spanspan style="color: #008080;" 33/span span style="color: #000000;" }
/spanspan style="color: #008080;" 34/span
span style="color: #008080;" 35/span span style="color: #008000;"///spanspan style="color: #008000;"62进制转成10进制/span
span style="color: #008080;" 36/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/spanspan style="color: #000000;" String Str62toInt(String str62)
/spanspan style="color: #008080;" 37/span span style="color: #000000;" {
/spanspan style="color: #008080;" 38/span span style="color: #0000ff;"long/span i64 = 0span style="color: #000000;";
/spanspan style="color: #008080;" 39/span span style="color: #0000ff;"for/span (span style="color: #0000ff;"int/span i = 0; i < str62.length(); i++span style="color: #000000;")
/spanspan style="color: #008080;" 40/span span style="color: #000000;" {
/spanspan style="color: #008080;" 41/span span style="color: #0000ff;"long/span Vi = (span style="color: #0000ff;"long/span)Math.pow(62, (str62.length() - i - 1span style="color: #000000;"));
/spanspan style="color: #008080;" 42/span String t = str62.substring(i,i+1span style="color: #000000;");
/spanspan style="color: #008080;" 43/span
span style="color: #008080;" 44/span i64 += Vi *span style="color: #000000;" findindex(t);
/spanspan style="color: #008080;" 45/span span style="color: #000000;" }
/spanspan style="color: #008080;" 46/span span style="color: #008000;"///spanspan style="color: #008000;" System.out.println(i64);/span
span style="color: #008080;" 47/span span style="color: #0000ff;"return/spanspan style="color: #000000;" Long.toString(i64);
/spanspan style="color: #008080;" 48/span span style="color: #000000;" }
/spanspan style="color: #008080;" 49/span
span style="color: #008080;" 50/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/span span style="color: #0000ff;"int/spanspan style="color: #000000;" findindex(String t)
/spanspan style="color: #008080;" 51/span span style="color: #000000;" {
/spanspan style="color: #008080;" 52/span span style="color: #0000ff;"int/span index=0span style="color: #000000;";
/spanspan style="color: #008080;" 53/span span style="color: #0000ff;"for/span(span style="color: #0000ff;"int/span i=0;istr62keys.length;i++span style="color: #000000;")
/spanspan style="color: #008080;" 54/span span style="color: #000000;" {
/spanspan style="color: #008080;" 55/span span style="color: #0000ff;"if/spanspan style="color: #000000;"(str62keys[i].equals(t)){
/spanspan style="color: #008080;" 56/span index=span style="color: #000000;"i;
/spanspan style="color: #008080;" 57/span span style="color: #0000ff;"break/spanspan style="color: #000000;";
/spanspan style="color: #008080;" 58/span span style="color: #000000;" }
/spanspan style="color: #008080;" 59/span span style="color: #000000;" }
/spanspan style="color: #008080;" 60/span span style="color: #0000ff;"return/spanspan style="color: #000000;" index;
/spanspan style="color: #008080;" 61/span span style="color: #000000;" }
/spanspan style="color: #008080;" 62/span
span style="color: #008080;" 63/span span style="color: #0000ff;"public/span span style="color: #0000ff;"static/spanspan style="color: #000000;" String Uid2Mid(String mid)
/spanspan style="color: #008080;" 64/span span style="color: #000000;" {
/spanspan style="color: #008080;" 65/span String id = ""span style="color: #000000;";
/spanspan style="color: #008080;" 66/span span style="color: #0000ff;"for/span (span style="color: #0000ff;"int/span i = mid.length() - 4; i -4; i = i - 4) span style="color: #008000;"///spanspan style="color: #008000;"从最后往前以4字节为一组读取URL字符/span
span style="color: #008080;" 67/span span style="color: #000000;" {
/spanspan style="color: #008080;" 68/span span style="color: #0000ff;"int/span offset1 = i < 0 ? 0span style="color: #000000;" : i;
/spanspan style="color: #008080;" 69/span span style="color: #0000ff;"int/span len = i < 0 ? mid.length() % 4 : 4span style="color: #000000;";
/spanspan style="color: #008080;" 70/span
span style="color: #008080;" 71/span String str = mid.substring(offset1, offset1+span style="color: #000000;"len);
/spanspan style="color: #008080;" 72/span span style="color: #008000;"///spanspan style="color: #008000;" System.out.println(offset1+" "+len+" "+str);/span
span style="color: #008080;" 73/span
span style="color: #008080;" 74/span str =span style="color: #000000;" Str62toInt(str);
/spanspan style="color: #008080;" 75/span
span style="color: #008080;" 76/span span style="color: #0000ff;"if/span (offset1 > 0) //若不是第一组,则不足7位补0
77 {
78 while (str.length() < 7)
79 {
80 str = "0" + str;
81 }
82 }
83 id = str + id;
84 }
85
86 return id;
87 }
88
89
90 public static String Mid2Uid(String str10) {
91 String mid = "";
92 int count = 1 ;
93 for (int i = str10.length() - 7; i > -7; i = i - 7) // 从最后往前以7字节为一组读取字符
94 {
95 int offset = i < 0 ? 0 : i;
96 int len = i < 0 ? str10.length() % 7 : 7;
97 String temp = str10.substring(offset, offset + len);
98 String url =IntToEnode62(Integer.valueOf(temp));
99 if(count!=3){//z xghm uXym 生成的链接从右往左的前2组,4位一组,不足4位的补0
100 for(int j=0;j
从WordPress微博同步插件第一个版本的强势来袭,你准备好了吗?
网站优化 • 优采云 发表了文章 • 0 个评论 • 65 次浏览 • 2021-08-15 03:20
这个插件简单实用。您可以在 WordPress 中发布文章 自动发送新浪微博(带有精选图片)。不得不说市面上的同步插件很多,但是都太臃肿或者添加了很多不切实际的第三方功能,作为一个追求极致的博主,这是一种煎熬,我们需要的很简单和实用。插件提供后台设置菜单,也可以拥有自己的微博尾巴,但需要自己在微博开放平台申请Appkey。
声明:由于微博开放平台接口和权限问题,凡力微博V3.1将不再支持早期创建的“微连接-连接网站”微博应用,请通过微博开放平台创建一个“微连接-web应用”,并添加设置应用的安全域名和回调地址,应用必须通过审核,否则插件将无法同步!请注意!
WordPress微博同步插件第一个版本发布已经一年多了,已经有数百个网站使用了。它也经历了几次版本升级和变化,但总有不尽人意的地方。这一次,V2.0版WordPress微博同步插件来了。插件再次进行了深度升级和开发,更换了插件的各种功能和数据存储方式。同时,插件正式命名为“Fanly微博”,保持原有风格,尽可能完美。
简单的背景设置
完美的同步效果
如何使用
安装方法和普通的WordPress插件一样。你可以直接通过WordPress后台在线上传安装这个插件,也可以解压上传到WordPress程序的“/wp-content/plugins/”,然后在后台插件菜单中启用“Micro”。 “博客同步”,最后在设置菜单的“微博同步”中填写微博开放平台申请的Appkey和自己的微博。
如有任何问题,请直接联系作者,或在本页留言。我们及时为您提供售后服务。
更新记录
1.0 版本:实现微博同步功能。
1.1 版本:实现后台菜单设置。
1.2 版本:实现文章中图片的同步。
1.3 版本:实现文章特色图片优先同步功能。
1.4 版本:通过微博Token实现微博同步,实现稳定同步。
范利微博V2.0版去掉了插件原有的数据写入方式,使用数组方式保存后台设置,重写功能兼容性问题,支持WordPress汇总支持文章首段内容同步去除同步内容包装等格式,加入Fanly插件系列。插件正式命名为:范利微博范利微博V2.1 版本优化回调获取方法授权回调页面地址获取范利微博V3.0 版本升级微博最新同步界面 删除旧版界面范利微博V 3. 1版本新增发布选项,新增视图同步微博功能,新增插件重置功能,全面支持微连接-web应用不再支持微连接-网站Fanly微博V3.2版本支持自定义文章类型同步优化同步设置,需要重置插件,添加设置页面,新版本更新提示,其他细节优化调整,凡力微博V3.3版本增加微博延迟同步功能优化插件同步逻辑优化插件更新提示别人说到你看不懂的细节,调整范力微博V3.4。修复部分PHP版本无法同步图片的情况。修复插件更新提醒。提示:服务器必须支持 curl
Fanly 微博V3.4.1 版本:调整延迟同步选项的判断规则
范利微博V3.5版本延时功能支持自定义定时同步到微博同步失败提示错误信息支持同步站点名称范利微博V3.6版本支持WordPress 5.0+新版块编辑器添加定位模块选择功能 添加自定义延迟时间开关,增强数据判断减少冗余(建议关闭默认同步选项)优化插件同步规则
说明:凡力微博V3.6版本后,价格调整为88元,已购买的用户可免费升级下载最新版本。
粉丝微博V3.6.1版本:修复同步成功后再次更新文章时清除同步状态的问题
使用步骤
Fanly微博微博同步插件使用教程(必看):
1.购买并通过雷雪建站平台下载最新版本的插件;
2.通过WordPress后台插件禁用和删除插件(新购买者请跳过);
3.通过FTP解压上传插件文件到“wp-content/plugins”目录,或者通过WordPress后台插件上传安装;
4.通过后台插件菜单启用插件;
5.通过启用的插件点击插件设置,或者通过WordPress设置菜单找到插件设置面板;
6.然后填写在微博开放平台申请的AppKey和AppSecret并保存;
7.点击“获取Token”,登录需要同步的微博账号,并保存;
8.如需修改同步微博账号,请先删除并保存token,然后重复上一步获取token。
使用提示:如果同步失败,请删除Token并保存,重新获取Token,或者禁用和启用插件一次。
付费资源
购买须知:是否适用请自行确定,虚拟物品不支持退换货!
资源价格:88CNY
泪雪提示:需要先登录才能购买资源
隐藏内容:资源收录隐藏内容,购买后可见! 查看全部
从WordPress微博同步插件第一个版本的强势来袭,你准备好了吗?
这个插件简单实用。您可以在 WordPress 中发布文章 自动发送新浪微博(带有精选图片)。不得不说市面上的同步插件很多,但是都太臃肿或者添加了很多不切实际的第三方功能,作为一个追求极致的博主,这是一种煎熬,我们需要的很简单和实用。插件提供后台设置菜单,也可以拥有自己的微博尾巴,但需要自己在微博开放平台申请Appkey。
声明:由于微博开放平台接口和权限问题,凡力微博V3.1将不再支持早期创建的“微连接-连接网站”微博应用,请通过微博开放平台创建一个“微连接-web应用”,并添加设置应用的安全域名和回调地址,应用必须通过审核,否则插件将无法同步!请注意!

WordPress微博同步插件第一个版本发布已经一年多了,已经有数百个网站使用了。它也经历了几次版本升级和变化,但总有不尽人意的地方。这一次,V2.0版WordPress微博同步插件来了。插件再次进行了深度升级和开发,更换了插件的各种功能和数据存储方式。同时,插件正式命名为“Fanly微博”,保持原有风格,尽可能完美。
简单的背景设置

完美的同步效果

如何使用
安装方法和普通的WordPress插件一样。你可以直接通过WordPress后台在线上传安装这个插件,也可以解压上传到WordPress程序的“/wp-content/plugins/”,然后在后台插件菜单中启用“Micro”。 “博客同步”,最后在设置菜单的“微博同步”中填写微博开放平台申请的Appkey和自己的微博。
如有任何问题,请直接联系作者,或在本页留言。我们及时为您提供售后服务。
更新记录
1.0 版本:实现微博同步功能。
1.1 版本:实现后台菜单设置。
1.2 版本:实现文章中图片的同步。
1.3 版本:实现文章特色图片优先同步功能。
1.4 版本:通过微博Token实现微博同步,实现稳定同步。
范利微博V2.0版去掉了插件原有的数据写入方式,使用数组方式保存后台设置,重写功能兼容性问题,支持WordPress汇总支持文章首段内容同步去除同步内容包装等格式,加入Fanly插件系列。插件正式命名为:范利微博范利微博V2.1 版本优化回调获取方法授权回调页面地址获取范利微博V3.0 版本升级微博最新同步界面 删除旧版界面范利微博V 3. 1版本新增发布选项,新增视图同步微博功能,新增插件重置功能,全面支持微连接-web应用不再支持微连接-网站Fanly微博V3.2版本支持自定义文章类型同步优化同步设置,需要重置插件,添加设置页面,新版本更新提示,其他细节优化调整,凡力微博V3.3版本增加微博延迟同步功能优化插件同步逻辑优化插件更新提示别人说到你看不懂的细节,调整范力微博V3.4。修复部分PHP版本无法同步图片的情况。修复插件更新提醒。提示:服务器必须支持 curl
Fanly 微博V3.4.1 版本:调整延迟同步选项的判断规则
范利微博V3.5版本延时功能支持自定义定时同步到微博同步失败提示错误信息支持同步站点名称范利微博V3.6版本支持WordPress 5.0+新版块编辑器添加定位模块选择功能 添加自定义延迟时间开关,增强数据判断减少冗余(建议关闭默认同步选项)优化插件同步规则
说明:凡力微博V3.6版本后,价格调整为88元,已购买的用户可免费升级下载最新版本。
粉丝微博V3.6.1版本:修复同步成功后再次更新文章时清除同步状态的问题
使用步骤
Fanly微博微博同步插件使用教程(必看):
1.购买并通过雷雪建站平台下载最新版本的插件;
2.通过WordPress后台插件禁用和删除插件(新购买者请跳过);
3.通过FTP解压上传插件文件到“wp-content/plugins”目录,或者通过WordPress后台插件上传安装;
4.通过后台插件菜单启用插件;
5.通过启用的插件点击插件设置,或者通过WordPress设置菜单找到插件设置面板;
6.然后填写在微博开放平台申请的AppKey和AppSecret并保存;
7.点击“获取Token”,登录需要同步的微博账号,并保存;
8.如需修改同步微博账号,请先删除并保存token,然后重复上一步获取token。
使用提示:如果同步失败,请删除Token并保存,重新获取Token,或者禁用和启用插件一次。
付费资源
购买须知:是否适用请自行确定,虚拟物品不支持退换货!
资源价格:88CNY
泪雪提示:需要先登录才能购买资源
隐藏内容:资源收录隐藏内容,购买后可见!
1.:OAUth认证方式比于BaseOAuthOAuth的认证资料比较少
网站优化 • 优采云 发表了文章 • 0 个评论 • 96 次浏览 • 2021-08-14 04:26
由于 Twitter 近期只支持 OAuth 认证方式,各大应用纷纷转向 OAuth 认证方式,新浪微博开放平台也将在近期停止 Base OAuth 认证方式。
为了继续使用新浪微博的开放平台,我开始研究OAuth认证方式。经过一段时间的实践,对新浪微博开放平台的OAuth认证方式有了一定的体会。鉴于网上这个平台的OAuth相关资料比较少,在这里分享一下过程中积累的经验,希望能帮助到一些想使用OAuth认证的人调用新浪微博界面~ ~
1.关于 OAuth:
OAUth认证方式相比Base OAuth认证方式最大的特点是应用端不需要保存用户的账号和密码,只需要用户授权的Key和Secret组合即可使用平台上的接口资源进行访问,在传输过程中,也可以通过截包分析,防止恶意人员获取用户的账号和密码。 (有一种说法,推特之所以完全切换到OAuth认证,是为了防止GFW通过截包的方式获取一些相关名人的账号和密码)。具体定义可以阅读OAuth规范定义:OAuth规范。
2.新浪微博开放平台:
新浪微博开放平台的基本界面、参数、返回格式参考推特模型。当然,国内其他一些开放平台也大量借鉴了推特的模式,所以基本是一样的。要使用新浪微博的开放平台,当然要先到其网站注册:新浪微博API。
注册后,会得到两个关键字段Consumer Key和Consumer Secret。保存它们。
新浪微博的开发平台有足够的文档,可以快速调用这些接口。除了一些较难的接口,我们将在下面讨论。
3.使用 OAuth 到新浪:
要使用 OAuth,用户必须先获得授权。一般来说,授权流程如下:
(1)应用向新浪开发平台发送请求,获取未授权的Request Token和Request Secret。此时Request Secret暂时不用,请妥善保管。
(2)以上一步获取的Request Token为参数,引导用户浏览器跳转到新浪微博授权页面,用户进入该页面登录新浪微博进行token授权.如果你在(1)如果浏览器的回调地址已经设置到服务器中,用户的浏览器会被重定向到这个地址,并且会在地址中增加一个新的参数:oauth_verifier。这个参数会稍后使用并保存。
(3)OAuth,认证过程的最后一步,向服务器请求真实的Token,将(1)中获取的Request Token,Request Secret,2)中获取的oauth_verifier作为参数传递给新浪微博)博客服务器,服务器会返回真实的Access Token和Access Secret,新浪微博也会返回用户在新浪微博的userid,有了用户的Access Token和Access Secret,就可以自由方便的调用新浪开通了微博界面。
每次调用都必须收录 OAuth 身份验证信息。作为OAuth认证信息,添加到请求包中基本上有两种方式:
(1)最推荐的方法是使用HTTP Authorization Header。这个header的定义在RFC2617中定义。
例如:
Authorization: OAuth realm="http://photos.example.net/",
oauth_consumer_key="dpf43f3p2l4k3l03",
oauth_token="nnch734d00sl2jdk",
oauth_signature_method="HMAC-SHA1",
oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D",
oauth_timestamp="1191242096", oauth_nonce="kllo9940pd9333jh",
oauth_version="1.0"
(2)或者你可以使用参数传递的方法,把OAuth参数像普通参数一样放在Get的URL中,或者放在POST的body内容中,都是可以的,
但是,在某些特殊情况下,解决这个问题会比较困难。
4.OAuth 认证参数分析:
如上所示,正常的 OAuth 身份验证收录以下参数:
(1)oauth_consumer_key:这是新浪在注册时给你的conusmer key,纯文本传输
(2)oauth_token:这是用户完成OAuth认证后的Access Token。在OAuth认证的第三步,就是Request Token,第一步不需要这个参数
(3)oauth_signature_method:加密方法,提供HMAC-SHA1、RSA-SHA1、PLAINTEXT几种方法
(4)oauth_signature:所有参数的加密字符串,包括消费者秘密和访问秘密
(5)oauth_timestamp:请求的时间戳
(6)oauth_version:可选参数,基本设置为1.0,否则会报错。
(7)oauth_nonce:防止重复调用的随机值
5.OAuth上传图片的痛苦:
使用上面的方法,基本上所有的接口调用都可以解决。但是当你遇到上传图片等困难的请求时,你需要一些技巧。
新浪微博开放平台要求上传图片时使用multipart/form-data。但是,当定义 OAuth 协议时,Content-Type 被描述为 application/x-www-form-urlencoded。没有提到如何在 multipart/form-data 中使用它。
在新浪微博的开放平台上,基本上网上找不到任何地方提到通过OAuth上传图片。经过一夜的 Twitter 试验和学习,
终于找到解决办法了。
基本上,协议中没有规定的内容,必须由私营部门以更直观的方式解决。在新浪微博界面上传图片,必须使用multipart/form-data作为Content-Type,OAuth认证参数不能放在form-data中,必须通过Authorization Header进行处理。这时候就必须除了file参数之外,在这个界面,status是加到oauth的加密里面的,但是没有出现在Authorization Header里面,而是后面加到了fom-data中,这样图片可以正常上传,可以发布微博。通过这个简单又麻烦的方法,我终于可以安全的上传图片到新浪微博了。
6.last
到目前为止,我已经成功调用了新浪微博的大部分接口,并开始覆盖搜狐微博、网易微博等开放平台。希望通过这个文章,可以记录一些经验和教训。
7.参考资料
[RFC5849]E。哈默拉哈夫,埃德。 《OAuth 1.0 协议》,RFC5849
[RFC1867] E. Nebel,L. Masinter,“HTML 中基于表单的文件上传”,RFC1867
[RFC2616] Fielding,R.,Gettys,J,e "超文本传输协议 - HTTP/1.1", RFC2616
[RFC2617] Franks,J.“HTTP 身份验证:基本和摘要式访问身份验证”,RFC2617
新浪微博开放平台: 查看全部
1.:OAUth认证方式比于BaseOAuthOAuth的认证资料比较少
由于 Twitter 近期只支持 OAuth 认证方式,各大应用纷纷转向 OAuth 认证方式,新浪微博开放平台也将在近期停止 Base OAuth 认证方式。
为了继续使用新浪微博的开放平台,我开始研究OAuth认证方式。经过一段时间的实践,对新浪微博开放平台的OAuth认证方式有了一定的体会。鉴于网上这个平台的OAuth相关资料比较少,在这里分享一下过程中积累的经验,希望能帮助到一些想使用OAuth认证的人调用新浪微博界面~ ~
1.关于 OAuth:
OAUth认证方式相比Base OAuth认证方式最大的特点是应用端不需要保存用户的账号和密码,只需要用户授权的Key和Secret组合即可使用平台上的接口资源进行访问,在传输过程中,也可以通过截包分析,防止恶意人员获取用户的账号和密码。 (有一种说法,推特之所以完全切换到OAuth认证,是为了防止GFW通过截包的方式获取一些相关名人的账号和密码)。具体定义可以阅读OAuth规范定义:OAuth规范。
2.新浪微博开放平台:
新浪微博开放平台的基本界面、参数、返回格式参考推特模型。当然,国内其他一些开放平台也大量借鉴了推特的模式,所以基本是一样的。要使用新浪微博的开放平台,当然要先到其网站注册:新浪微博API。
注册后,会得到两个关键字段Consumer Key和Consumer Secret。保存它们。
新浪微博的开发平台有足够的文档,可以快速调用这些接口。除了一些较难的接口,我们将在下面讨论。
3.使用 OAuth 到新浪:

要使用 OAuth,用户必须先获得授权。一般来说,授权流程如下:
(1)应用向新浪开发平台发送请求,获取未授权的Request Token和Request Secret。此时Request Secret暂时不用,请妥善保管。
(2)以上一步获取的Request Token为参数,引导用户浏览器跳转到新浪微博授权页面,用户进入该页面登录新浪微博进行token授权.如果你在(1)如果浏览器的回调地址已经设置到服务器中,用户的浏览器会被重定向到这个地址,并且会在地址中增加一个新的参数:oauth_verifier。这个参数会稍后使用并保存。
(3)OAuth,认证过程的最后一步,向服务器请求真实的Token,将(1)中获取的Request Token,Request Secret,2)中获取的oauth_verifier作为参数传递给新浪微博)博客服务器,服务器会返回真实的Access Token和Access Secret,新浪微博也会返回用户在新浪微博的userid,有了用户的Access Token和Access Secret,就可以自由方便的调用新浪开通了微博界面。
每次调用都必须收录 OAuth 身份验证信息。作为OAuth认证信息,添加到请求包中基本上有两种方式:
(1)最推荐的方法是使用HTTP Authorization Header。这个header的定义在RFC2617中定义。
例如:
Authorization: OAuth realm="http://photos.example.net/",
oauth_consumer_key="dpf43f3p2l4k3l03",
oauth_token="nnch734d00sl2jdk",
oauth_signature_method="HMAC-SHA1",
oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D",
oauth_timestamp="1191242096", oauth_nonce="kllo9940pd9333jh",
oauth_version="1.0"
(2)或者你可以使用参数传递的方法,把OAuth参数像普通参数一样放在Get的URL中,或者放在POST的body内容中,都是可以的,
但是,在某些特殊情况下,解决这个问题会比较困难。
4.OAuth 认证参数分析:
如上所示,正常的 OAuth 身份验证收录以下参数:
(1)oauth_consumer_key:这是新浪在注册时给你的conusmer key,纯文本传输
(2)oauth_token:这是用户完成OAuth认证后的Access Token。在OAuth认证的第三步,就是Request Token,第一步不需要这个参数
(3)oauth_signature_method:加密方法,提供HMAC-SHA1、RSA-SHA1、PLAINTEXT几种方法
(4)oauth_signature:所有参数的加密字符串,包括消费者秘密和访问秘密
(5)oauth_timestamp:请求的时间戳
(6)oauth_version:可选参数,基本设置为1.0,否则会报错。
(7)oauth_nonce:防止重复调用的随机值
5.OAuth上传图片的痛苦:
使用上面的方法,基本上所有的接口调用都可以解决。但是当你遇到上传图片等困难的请求时,你需要一些技巧。
新浪微博开放平台要求上传图片时使用multipart/form-data。但是,当定义 OAuth 协议时,Content-Type 被描述为 application/x-www-form-urlencoded。没有提到如何在 multipart/form-data 中使用它。
在新浪微博的开放平台上,基本上网上找不到任何地方提到通过OAuth上传图片。经过一夜的 Twitter 试验和学习,
终于找到解决办法了。
基本上,协议中没有规定的内容,必须由私营部门以更直观的方式解决。在新浪微博界面上传图片,必须使用multipart/form-data作为Content-Type,OAuth认证参数不能放在form-data中,必须通过Authorization Header进行处理。这时候就必须除了file参数之外,在这个界面,status是加到oauth的加密里面的,但是没有出现在Authorization Header里面,而是后面加到了fom-data中,这样图片可以正常上传,可以发布微博。通过这个简单又麻烦的方法,我终于可以安全的上传图片到新浪微博了。
6.last
到目前为止,我已经成功调用了新浪微博的大部分接口,并开始覆盖搜狐微博、网易微博等开放平台。希望通过这个文章,可以记录一些经验和教训。
7.参考资料
[RFC5849]E。哈默拉哈夫,埃德。 《OAuth 1.0 协议》,RFC5849
[RFC1867] E. Nebel,L. Masinter,“HTML 中基于表单的文件上传”,RFC1867
[RFC2616] Fielding,R.,Gettys,J,e "超文本传输协议 - HTTP/1.1", RFC2616
[RFC2617] Franks,J.“HTTP 身份验证:基本和摘要式访问身份验证”,RFC2617
新浪微博开放平台:
Twitter申请API试用权限注册在开放平台登录后可以看到的界面如下
网站优化 • 优采云 发表了文章 • 0 个评论 • 112 次浏览 • 2021-08-14 04:18
Twitter申请API试用权限注册在开放平台登录后可以看到的界面如下
新浪微博开放平台介绍 新浪微博开放平台的系统是指推特。两者非常相似,包括接口参数的定义请求方法等。如果你熟悉Twitter的API,基本上可以同时应用于新浪微博开放平台本文档技术部分的信息可以也适用于推特新浪微博开放平台网站为目前只有部分页面对匿名用户开放。新浪微博开放平台官方微博供您在这里申请API试用权限。在 Open 中注册 登录平台后可以看到的界面如下图所示。您可以选择创建应用程序。需要设置应用名称、应用地址等,创建后可以在我的应用菜单中看到应用和用户数。系统将为该应用程序分配一个 APPKEY 和 APPSECRET。这两个字符串非常重要,将在以后的身份验证或信息交换中使用。应用的详细信息页面分为多个授权级别。分为普通授权、中级授权、高级授权、合作伙伴授权。您可以在此处查看详细的权限。信息使用伙伴授权没有请求限制,普通授权可能会不小心造成ServerLimit。开放认证平台上有两种认证方式。一个是 BasicAuth,另一个是 OAuthHTTPAuth1BasicAuthBasicAuth。简单的解释是每次请求API时都会提供用户。用户名和密码如 curl-uuserpassword-dquotsource10001ampstatusapitestquot 这种方法的优缺点显而易见。优点是使用起来非常简单。开发调试工作简单。没有复杂的页面跳转逻辑和交互过程。更有利于发起者控制。缺点。安全性低。传递用户名和密码 用户名和密码在很大程度上可能会被监控和窃取。同时,应用程序需要在本地保存用户名和密码。应用本身的安全性也存在较大问题。开放平台服务商是出于自身的安全考虑。考虑到第三方可以获取服务提供商用户的账户密码,这对服务提供商来说是一种安全风险。这种身份验证方法将来也将受到限制。 Twitter 计划规划一个完整的创业计划。教育商业计划。商业计划。医疗项目计划。股权融资。项目计划将于 6 月停止对 BasicAuth 的支持。如果用户更改了用户名和密码,则需要重新检查密码。 2OAuthOAuth为用户资源的授权提供了安全、开放的标准,未来开发平台将普遍遵循。目前Twitter新浪微博、豆瓣、谷歌等都对其提供支持。它分为几个交互过程。 1 应用将 APPKEY 和 APPSECRET 交换为 OAuth_token 2 应用引导用户到服务商的页面授权 OAuth_token 可能需要输入用户名和密码 3 服务商的页面跳转回应用然后去服务商根据参数获取AccessTo
ken4 可以使用这个 AccessToken 来访问 API。上述过程如下图所示。 OAuth认证过程OAuth的优点是安全性高用户的账号和密码只需要提供一次,并在服务商页面提供,防止BasicAuth重复传输密码带来的安全隐患。令牌访问权限仅限于被盗应用程序,不会影响用户在服务提供商的其他服务。即使被监控丢失,也可以随时撤销。与可能被他人篡改的密码不同,用户不会更改密码。影响应用正常使用的具体OAuth分析在这个文章standard文档中有详细说明。新浪微博开放平台提供多种认证页面。例如下图为标准授权页面弹窗式授权页面开发开放平台API接口基本以RESTFUl的方式给出,统一参数和响应格式实际开发示例BasicAuth我会用到PHP和Perl两种方法OAuth我会使用PHP和Javascript两种方法并结合命令行给出一个全面的说明 1BasicAuth 用户认证 用户认证接口是Accountverifycredentialsjson 数据访问方式是curl-uuidpassworduid 可以是用户在新浪上的用户名或者用户号 结果通过命令行执行的方式如下: 命令行请求用户认证接口是PHP下面使用curl请求这个接口代码示例username_POST[„username]password_POST[„password]paramvalidatecurlcurl_initcurl_setoptcurlCURLOPT_URLquotcurl_setoptcurlCURLOPT_RETURNTRANSFER1curl_setoptcurlWDURLcurl_USER_USER l_curl,如果可以使用下面的命令实现WCurl_close_curl_curl_curl_curl_curl_curl_curl或者WCurl_close_curl_curl_curl_curl,可以使用下面的命令实现WCurl_setoptcurlCURLOPT_USERPWDcurl'dcount3-dsince_dsince_user_id'个人信息,如果认证成功,就会返回userid信息。如果认证失败,会返回ltxmlversionquot10quotencodingquotUTF-8quotgtlthashgtltrequestgtaccountverify_c等错误信息
redentialsxmlltrequestgtlterror_codegt400lterror_codegtlterrorgtErrorsourceparamterappkeyismissinglterrorgtlthashgt2BasicAuth的好友消息获取好友消息获取是最常用的函数之一,用于获取您关注的用户的最新消息列表。 API的主要参数包括since_idmax_idcountpage,since_id是常用的消息数,since_id是取自开始的消息数,如果要做增量更新功能,可以记录每条最新消息的id时间,然后使用这条消息的id作为since_id通过命令行请求接口如下图。在返回的json数据中获取消息的结果如下:quotfollowersquot5quotdmquotmentionsquot1quotcommentsquot24OAuth方法用PHP开发OAuth新浪微博应用其实比较简单,因为开放平台提供了SDK供开发者使用,看地址,但是在例子中,使用_ SERVER[SCRIPT_URI] 可能有问题。您需要使用 HTTP_HOST 和 REQUEST_URI 来构建完整路径。这里主要想介绍一下新浪微博在本地应用模式下基于HTML和Javascript的应用。以傲游浏览器插件的实现为例。有几个问题需要解决。一、Ajax跨域问题。当我们通过Javascript从本地请求新浪微博API时,它们都是跨域解决方案。 1 使用 PHP 作为域访问代理。当然,这种方法并不是纯粹的本地化。应用 2 使用动态Script标签等Ajax跨域方法 3 如果是傲游插件,这不是问题,因为浏览器插件可以跨域访问远程地址。第二个加密算法问题。 OAuth 请求需要签名。需要算法。支持新浪微博开放平台的文档推荐使用HMAC-SHA1方式。 Node.js 有一个 sha1 库,它实现了常用的 SHA1 加密算法。使用里面的b64_hmac_sha1方法得到符合格式的签名。第三个页面跳转问题是在OAuth的过程中,第一步是从新浪用户授权页面跳转到应用的回调页面。这个过程对于本地应用程序是有问题的。以傲游浏览器为例,页面以本地文件的形式打开。文件 此页面不存在。网络上的地址所以
当文件开头的地址作为新浪用户授权页面的回调地址时,通过后台重定向。无法解析这个页面的地址,也不能跳转到对应的本地页面,也就是说这个页面必须在某个域名下。这个问题很难解决,而且从浏览器端修改成本太高。好在新浪微博授权API为不方便访问网页的应用提供了oauth_callback json方法,正好帮助我们解决了这个问题。应用程序的结构如下图所示。本地应用的体系结构配置页面用于账户授权或取消授权。点击账号授权跳转到登录页面。登录页面首先从request_tokenAPI获取未授权token,然后在用户输入用户名和密码后,将参数提交给authorizeAPI获取verifier。然后跳转到回调页面。回调页面基于验证者和token到access_tokenAPI获取授权token认证流程。令牌保存在本地cookies、本地文件浏览器账户配置等中,每次收到消息或发布消息时,都需要使用此令牌消息显示。通过定时刷新模式或增量更新页面更新用户信息Ajax页面获取request_token以下核心代码functionget_request_tokenvarparam_arr [quotoauth_consumer_keyquotoauth_consumer_keyquotoauth_noncequotoauth_noncequotoauth_signature_methodquotoauth_signature_methodquotoauth_timestampquotoauth_timestampquotoauth_versionquotoauth_version] base_stringoauth_methodquotampquotencodeURIComponentrequest_token_apiquotampquotencodeURIComponentparam_arrjoinquotampquotoauth_signatureb64_hmac_sha1app_secretquotampquotbase_stringquotquotargsquotoauth_consumer_keyquotencodeURIComponentoauth_consumer_keyquotampoauth _
noncequotencodeURIComponentoauth_noncequotampoauth_timestampquotencodeURIComponentoauth_timestampquotampoauth_signature_methodquotencodeURIComponentoauth_signature_methodquotampoauth_signaturequotencodeURIComponentoauth_signaturequotampoauth_versionquotencodeURIComponentoauth_versionLiteIOajaxGetrequest_token_proxyargsset_oauth_token_callback傲游塞的简单效果新浪微博如图开放平台的应用 - 傲游插件推的图,并抓住上述结构建设计划市场营销计划模板建筑施工程序施工解决方案施工组织设计的例子(构建方案)基于应用自身的爬取方式,需要定期进行,以实现新浪微博对应用的推送功能。根据新浪 ltphpspushnewServerPush „replacedisplaythemessagequotHellohowareyoutodayquotonewordatatimewithatwoseconddelaybetweenwordsspush-grotatearray„Hello„how„are„youtoday2gt others 我很好奇我研究了 SinaTwitter 的 Chrome 插件,惊讶地发现它没有使用任何新浪的 API。它完全基于页面抓取。这也是实现新浪微博插件的另一个思路。至于 Twitter 应用程序的实现,可以使用类twitterphp。类库已经封装了很多功能,但是还是有一些不完善的地方。我个人对其进行了一些改进。附上新浪微博开放API列表获取最新更新的公开微博新闻 statusfriends_timeline 获取用户的最新微博关注当前用户 信息别名 statushome_timelinestatusesuser_timeline 获取用户发布的微博信息列表statusmentions 获取微博列表当前用户statuscomments_timeline 获取当前用户发送和接收的评论列表 statuscomment_by_me获取当前用户发送的评论
评论状态comments 获取指定微博的评论列表statuscounts 批量获取一组微博的评论数和转发数 statussunread 获取当前用户的未读消息数 根据ID获取单个微博的信息userstatusid 根据微博ID和用户ID跳转到单个微博页面 statusesupdate 发微博 statusesupload 上传图片发微博 statusdestroy 删除微博 statusesrepost 转发微博可以给微博添加评论 statuscomment_destroy delete当前用户的微博评论信息状态回复微博评论信息根据用户ID获取用户资料授权用户状态好友获取当前用户的关注列表和最新的微博信息状态关注者获取当前用户的粉丝列表和最新的微博信息获取当前用户的最新信息私信列表 direct_messagessent 获取t当前用户 发送最新私信列表 direct_messagesnew 发送私信 direct_messages销毁私信 用户身份是否合法 accountrate_limit_status 获取当前用户API访问频率限制 accountend_session 当前用户登出 accountupdate_profile_image 更改个人资料图片 accountupdate_profile 更改个人资料帐户register 注册新浪微博account rites 获取当前用户的采集列表 添加采集的favoritesdestroy 删除当前用户采集的微博信息 授权方式介绍 oauthrequest_token 获取未授权 RequestTokenoauthauthorize 请求用户授权 Tokenoauthaccess_token 获取授权微博信息 用户个人资料信息 评论 评论信息 描述 direct_message 私信信息 省市代码表取自quotquot 查看全部
Twitter申请API试用权限注册在开放平台登录后可以看到的界面如下

新浪微博开放平台介绍 新浪微博开放平台的系统是指推特。两者非常相似,包括接口参数的定义请求方法等。如果你熟悉Twitter的API,基本上可以同时应用于新浪微博开放平台本文档技术部分的信息可以也适用于推特新浪微博开放平台网站为目前只有部分页面对匿名用户开放。新浪微博开放平台官方微博供您在这里申请API试用权限。在 Open 中注册 登录平台后可以看到的界面如下图所示。您可以选择创建应用程序。需要设置应用名称、应用地址等,创建后可以在我的应用菜单中看到应用和用户数。系统将为该应用程序分配一个 APPKEY 和 APPSECRET。这两个字符串非常重要,将在以后的身份验证或信息交换中使用。应用的详细信息页面分为多个授权级别。分为普通授权、中级授权、高级授权、合作伙伴授权。您可以在此处查看详细的权限。信息使用伙伴授权没有请求限制,普通授权可能会不小心造成ServerLimit。开放认证平台上有两种认证方式。一个是 BasicAuth,另一个是 OAuthHTTPAuth1BasicAuthBasicAuth。简单的解释是每次请求API时都会提供用户。用户名和密码如 curl-uuserpassword-dquotsource10001ampstatusapitestquot 这种方法的优缺点显而易见。优点是使用起来非常简单。开发调试工作简单。没有复杂的页面跳转逻辑和交互过程。更有利于发起者控制。缺点。安全性低。传递用户名和密码 用户名和密码在很大程度上可能会被监控和窃取。同时,应用程序需要在本地保存用户名和密码。应用本身的安全性也存在较大问题。开放平台服务商是出于自身的安全考虑。考虑到第三方可以获取服务提供商用户的账户密码,这对服务提供商来说是一种安全风险。这种身份验证方法将来也将受到限制。 Twitter 计划规划一个完整的创业计划。教育商业计划。商业计划。医疗项目计划。股权融资。项目计划将于 6 月停止对 BasicAuth 的支持。如果用户更改了用户名和密码,则需要重新检查密码。 2OAuthOAuth为用户资源的授权提供了安全、开放的标准,未来开发平台将普遍遵循。目前Twitter新浪微博、豆瓣、谷歌等都对其提供支持。它分为几个交互过程。 1 应用将 APPKEY 和 APPSECRET 交换为 OAuth_token 2 应用引导用户到服务商的页面授权 OAuth_token 可能需要输入用户名和密码 3 服务商的页面跳转回应用然后去服务商根据参数获取AccessTo

ken4 可以使用这个 AccessToken 来访问 API。上述过程如下图所示。 OAuth认证过程OAuth的优点是安全性高用户的账号和密码只需要提供一次,并在服务商页面提供,防止BasicAuth重复传输密码带来的安全隐患。令牌访问权限仅限于被盗应用程序,不会影响用户在服务提供商的其他服务。即使被监控丢失,也可以随时撤销。与可能被他人篡改的密码不同,用户不会更改密码。影响应用正常使用的具体OAuth分析在这个文章standard文档中有详细说明。新浪微博开放平台提供多种认证页面。例如下图为标准授权页面弹窗式授权页面开发开放平台API接口基本以RESTFUl的方式给出,统一参数和响应格式实际开发示例BasicAuth我会用到PHP和Perl两种方法OAuth我会使用PHP和Javascript两种方法并结合命令行给出一个全面的说明 1BasicAuth 用户认证 用户认证接口是Accountverifycredentialsjson 数据访问方式是curl-uuidpassworduid 可以是用户在新浪上的用户名或者用户号 结果通过命令行执行的方式如下: 命令行请求用户认证接口是PHP下面使用curl请求这个接口代码示例username_POST[„username]password_POST[„password]paramvalidatecurlcurl_initcurl_setoptcurlCURLOPT_URLquotcurl_setoptcurlCURLOPT_RETURNTRANSFER1curl_setoptcurlWDURLcurl_USER_USER l_curl,如果可以使用下面的命令实现WCurl_close_curl_curl_curl_curl_curl_curl_curl或者WCurl_close_curl_curl_curl_curl,可以使用下面的命令实现WCurl_setoptcurlCURLOPT_USERPWDcurl'dcount3-dsince_dsince_user_id'个人信息,如果认证成功,就会返回userid信息。如果认证失败,会返回ltxmlversionquot10quotencodingquotUTF-8quotgtlthashgtltrequestgtaccountverify_c等错误信息

redentialsxmlltrequestgtlterror_codegt400lterror_codegtlterrorgtErrorsourceparamterappkeyismissinglterrorgtlthashgt2BasicAuth的好友消息获取好友消息获取是最常用的函数之一,用于获取您关注的用户的最新消息列表。 API的主要参数包括since_idmax_idcountpage,since_id是常用的消息数,since_id是取自开始的消息数,如果要做增量更新功能,可以记录每条最新消息的id时间,然后使用这条消息的id作为since_id通过命令行请求接口如下图。在返回的json数据中获取消息的结果如下:quotfollowersquot5quotdmquotmentionsquot1quotcommentsquot24OAuth方法用PHP开发OAuth新浪微博应用其实比较简单,因为开放平台提供了SDK供开发者使用,看地址,但是在例子中,使用_ SERVER[SCRIPT_URI] 可能有问题。您需要使用 HTTP_HOST 和 REQUEST_URI 来构建完整路径。这里主要想介绍一下新浪微博在本地应用模式下基于HTML和Javascript的应用。以傲游浏览器插件的实现为例。有几个问题需要解决。一、Ajax跨域问题。当我们通过Javascript从本地请求新浪微博API时,它们都是跨域解决方案。 1 使用 PHP 作为域访问代理。当然,这种方法并不是纯粹的本地化。应用 2 使用动态Script标签等Ajax跨域方法 3 如果是傲游插件,这不是问题,因为浏览器插件可以跨域访问远程地址。第二个加密算法问题。 OAuth 请求需要签名。需要算法。支持新浪微博开放平台的文档推荐使用HMAC-SHA1方式。 Node.js 有一个 sha1 库,它实现了常用的 SHA1 加密算法。使用里面的b64_hmac_sha1方法得到符合格式的签名。第三个页面跳转问题是在OAuth的过程中,第一步是从新浪用户授权页面跳转到应用的回调页面。这个过程对于本地应用程序是有问题的。以傲游浏览器为例,页面以本地文件的形式打开。文件 此页面不存在。网络上的地址所以

当文件开头的地址作为新浪用户授权页面的回调地址时,通过后台重定向。无法解析这个页面的地址,也不能跳转到对应的本地页面,也就是说这个页面必须在某个域名下。这个问题很难解决,而且从浏览器端修改成本太高。好在新浪微博授权API为不方便访问网页的应用提供了oauth_callback json方法,正好帮助我们解决了这个问题。应用程序的结构如下图所示。本地应用的体系结构配置页面用于账户授权或取消授权。点击账号授权跳转到登录页面。登录页面首先从request_tokenAPI获取未授权token,然后在用户输入用户名和密码后,将参数提交给authorizeAPI获取verifier。然后跳转到回调页面。回调页面基于验证者和token到access_tokenAPI获取授权token认证流程。令牌保存在本地cookies、本地文件浏览器账户配置等中,每次收到消息或发布消息时,都需要使用此令牌消息显示。通过定时刷新模式或增量更新页面更新用户信息Ajax页面获取request_token以下核心代码functionget_request_tokenvarparam_arr [quotoauth_consumer_keyquotoauth_consumer_keyquotoauth_noncequotoauth_noncequotoauth_signature_methodquotoauth_signature_methodquotoauth_timestampquotoauth_timestampquotoauth_versionquotoauth_version] base_stringoauth_methodquotampquotencodeURIComponentrequest_token_apiquotampquotencodeURIComponentparam_arrjoinquotampquotoauth_signatureb64_hmac_sha1app_secretquotampquotbase_stringquotquotargsquotoauth_consumer_keyquotencodeURIComponentoauth_consumer_keyquotampoauth _

noncequotencodeURIComponentoauth_noncequotampoauth_timestampquotencodeURIComponentoauth_timestampquotampoauth_signature_methodquotencodeURIComponentoauth_signature_methodquotampoauth_signaturequotencodeURIComponentoauth_signaturequotampoauth_versionquotencodeURIComponentoauth_versionLiteIOajaxGetrequest_token_proxyargsset_oauth_token_callback傲游塞的简单效果新浪微博如图开放平台的应用 - 傲游插件推的图,并抓住上述结构建设计划市场营销计划模板建筑施工程序施工解决方案施工组织设计的例子(构建方案)基于应用自身的爬取方式,需要定期进行,以实现新浪微博对应用的推送功能。根据新浪 ltphpspushnewServerPush „replacedisplaythemessagequotHellohowareyoutodayquotonewordatatimewithatwoseconddelaybetweenwordsspush-grotatearray„Hello„how„are„youtoday2gt others 我很好奇我研究了 SinaTwitter 的 Chrome 插件,惊讶地发现它没有使用任何新浪的 API。它完全基于页面抓取。这也是实现新浪微博插件的另一个思路。至于 Twitter 应用程序的实现,可以使用类twitterphp。类库已经封装了很多功能,但是还是有一些不完善的地方。我个人对其进行了一些改进。附上新浪微博开放API列表获取最新更新的公开微博新闻 statusfriends_timeline 获取用户的最新微博关注当前用户 信息别名 statushome_timelinestatusesuser_timeline 获取用户发布的微博信息列表statusmentions 获取微博列表当前用户statuscomments_timeline 获取当前用户发送和接收的评论列表 statuscomment_by_me获取当前用户发送的评论

评论状态comments 获取指定微博的评论列表statuscounts 批量获取一组微博的评论数和转发数 statussunread 获取当前用户的未读消息数 根据ID获取单个微博的信息userstatusid 根据微博ID和用户ID跳转到单个微博页面 statusesupdate 发微博 statusesupload 上传图片发微博 statusdestroy 删除微博 statusesrepost 转发微博可以给微博添加评论 statuscomment_destroy delete当前用户的微博评论信息状态回复微博评论信息根据用户ID获取用户资料授权用户状态好友获取当前用户的关注列表和最新的微博信息状态关注者获取当前用户的粉丝列表和最新的微博信息获取当前用户的最新信息私信列表 direct_messagessent 获取t当前用户 发送最新私信列表 direct_messagesnew 发送私信 direct_messages销毁私信 用户身份是否合法 accountrate_limit_status 获取当前用户API访问频率限制 accountend_session 当前用户登出 accountupdate_profile_image 更改个人资料图片 accountupdate_profile 更改个人资料帐户register 注册新浪微博account rites 获取当前用户的采集列表 添加采集的favoritesdestroy 删除当前用户采集的微博信息 授权方式介绍 oauthrequest_token 获取未授权 RequestTokenoauthauthorize 请求用户授权 Tokenoauthaccess_token 获取授权微博信息 用户个人资料信息 评论 评论信息 描述 direct_message 私信信息 省市代码表取自quotquot
使用新浪微博开放平台api同步微博内容至自己网站 E9%A6%E9A1%A1-
网站优化 • 优采云 发表了文章 • 0 个评论 • 51 次浏览 • 2021-08-13 22:06
关于新浪微博开放平台的问题很多。网上的文档不是很清楚,授权机制难倒我。我不知道发生了什么,我一直在报告我没有获得许可。我没有回复给开发者的电子邮件。
偶尔尝试一个方法States并返回成功。以下代码:
1.quoted in head
2.Javascript 媒体
$(function(){
WB2.anyWhere(function(W){
W.parseCMD("/statuses/home_timeline.json?user_id=2922998432", function(sResult, bStatus){
if(bStatus == true) {
alert(sResult);
}
},{},{
method: 'get'
});
});
})
这里的 User_id 是您自己的 Userid。如果您不知道,请在您自己的微博上查看,或者到百度搜索如何查看您的用户名。这里就不详细解释了。
如果成功,会弹出对象类型sResult。您可以根据需要调试并获取内容; parseCMD的第一个参数是接口,接口的详细信息可以在新浪微博开放平台的API中找到,看你需要什么%E9%A6%96%E9%A1%B5
-----似乎所有的新浪微博界面都不支持POST,但是默认提交的仍然是POST方式:'GET'是必须的, 查看全部
使用新浪微博开放平台api同步微博内容至自己网站 E9%A6%E9A1%A1-
关于新浪微博开放平台的问题很多。网上的文档不是很清楚,授权机制难倒我。我不知道发生了什么,我一直在报告我没有获得许可。我没有回复给开发者的电子邮件。
偶尔尝试一个方法States并返回成功。以下代码:
1.quoted in head
2.Javascript 媒体
$(function(){
WB2.anyWhere(function(W){
W.parseCMD("/statuses/home_timeline.json?user_id=2922998432", function(sResult, bStatus){
if(bStatus == true) {
alert(sResult);
}
},{},{
method: 'get'
});
});
})
这里的 User_id 是您自己的 Userid。如果您不知道,请在您自己的微博上查看,或者到百度搜索如何查看您的用户名。这里就不详细解释了。
如果成功,会弹出对象类型sResult。您可以根据需要调试并获取内容; parseCMD的第一个参数是接口,接口的详细信息可以在新浪微博开放平台的API中找到,看你需要什么%E9%A6%96%E9%A1%B5
-----似乎所有的新浪微博界面都不支持POST,但是默认提交的仍然是POST方式:'GET'是必须的,
新浪微博API新特点与百度地图API相比,我理解
网站优化 • 优采云 发表了文章 • 0 个评论 • 80 次浏览 • 2021-08-13 21:15
查看 API 使用流程
通过百度地图API的使用,了解到API调用的大致流程是:生成API指定格式的url->通过urllib读取url中的数据->解析json格式的数据接下来开始研究新浪微博API的使用。
准备
新浪微博开放平台是一个使用新浪微博API的平台。使用微博账号登录平台后,申请成为开发者,创建新应用后将获得唯一的App Key和App Secret。 (注:申请不需要提交审核,只要新建一个申请系统,就会分配Key和Secret。)这两个信息也可以在“我的申请/申请信息/基本信息”中找到”。这个页面上还有一项“我的申请/申请信息/高级信息”。点击进入设置OAuth2.0授权回调页面的相关信息。如果不知道填写什么,可以设置为默认回调页面: 。后面需要这三个信息,请复制保存到文件中。
微博API新功能
相比百度地图API,新浪微博API增加了OAuth2.0协议进行用户认证和授权。这里只做一个简单的说明(感兴趣的同学可以参考网上的文档图):通过这个协议,第三方应用可以获取用户授权,然后使用license从授权服务器获取token,用于后续的查询API 服务器在数据时验证身份。
这个验证链接增加了url生成的复杂度。好在网站上已经有廖雪峰老师提供的SDK工具包:sinaweibopy(廖老师的github地址好像改名了,所以网上很多旧链接失效了,是新的有效链接) ,但是这个程序是基于python2环境编写的,python3的一些系统库发生了变化,调用程序时经常报错。作为一个python初学者,让程序适应python3环境无疑是困难的。幸运的是,一位伟大的上帝做了这项工作。感谢owolf为python3重写的SDK:sinaweibopy3。我用过,运行正常。你可以下载它。最详细的我也推荐owolf的文章全网:python3调用新浪微博API接口获取数据。
简单例子
先介绍一下新浪微博API的使用流程,供新人参考。
1.参数设置
导入sinaweibopy3
导入浏览器
导入json
APP_KEY ='填写您的应用密钥'
APP_SECRET='填写您的应用密钥'
REDIRECT_URL ='填写您的授权回调页面'
注意:
这个文件需要和sinaweibopy3.py放在同一个文件夹中。
填写的三项信息都是准备中提到的信息。
这里讲一个我粗心造成的bug,给大家提个醒。一开始,我运行程序时,每次都出现“重定向地址不匹配”的错误提示:
使用微博账号登录时出错!授权第三方应用程序时出错。请联系第三方应用的开发者:XXX 或稍后重试。
错误代码:21322 重定向地址不匹配
在网上找解决办法,需要设置回调页面,不过我在前面的步骤中已经设置好了。为什么我还是有这个问题?后来在文章看到一篇文章,提到回调页面地址要和程序中的REDIRECT_URL一致。我想到了程序示例,一开始使用http:。我看填的时候地址是一样的,所以没改。 网站上是https: 一开始,有's'的区别。当时还以为是地址,没想到和原来大不一样!
2.OAuth2.0 验证生成的url
client = sinaweibopy3.APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=REDIRECT_URL)
url = client.get_authorize_url()
webbrowser.open_new(url)
result = client.request_access_token(input("请输入代码:"))
client.set_access_token(result.access_token, result.expires_in)
注:这是在OAuth2.0中调用sinaweibopy3实现用户授权的过程->获取Token。当程序运行到client.request_access_token时,会弹出输入提示“请输入代码:”,询问代码?这是什么意思?打开浏览器,会看到出现OAuth2.0验证回调页面。地址栏中的'code='后面有一串字符。这就是我们想要的Token信息。复制粘贴进去,程序继续运行。
3.从 API 读取数据
运行以下代码读取公共微博数据并显示结果。
result=client.public_timeline()
print(json.dumps(result,indent=2,ensure_ascii=False))
通过查看数据结构,可以提取出具体的信息。例如,使用以下代码输出用户的微博昵称、位置和最新的微博文本。
number=result["total_number"]
print(number,"users:")
对于你的结果["statuses"]:
print(u["user"]["screen_name"])
print(u["user"]["location"])
print(u["text"])
高级 查看全部
新浪微博API新特点与百度地图API相比,我理解
查看 API 使用流程
通过百度地图API的使用,了解到API调用的大致流程是:生成API指定格式的url->通过urllib读取url中的数据->解析json格式的数据接下来开始研究新浪微博API的使用。
准备
新浪微博开放平台是一个使用新浪微博API的平台。使用微博账号登录平台后,申请成为开发者,创建新应用后将获得唯一的App Key和App Secret。 (注:申请不需要提交审核,只要新建一个申请系统,就会分配Key和Secret。)这两个信息也可以在“我的申请/申请信息/基本信息”中找到”。这个页面上还有一项“我的申请/申请信息/高级信息”。点击进入设置OAuth2.0授权回调页面的相关信息。如果不知道填写什么,可以设置为默认回调页面: 。后面需要这三个信息,请复制保存到文件中。
微博API新功能
相比百度地图API,新浪微博API增加了OAuth2.0协议进行用户认证和授权。这里只做一个简单的说明(感兴趣的同学可以参考网上的文档图):通过这个协议,第三方应用可以获取用户授权,然后使用license从授权服务器获取token,用于后续的查询API 服务器在数据时验证身份。
这个验证链接增加了url生成的复杂度。好在网站上已经有廖雪峰老师提供的SDK工具包:sinaweibopy(廖老师的github地址好像改名了,所以网上很多旧链接失效了,是新的有效链接) ,但是这个程序是基于python2环境编写的,python3的一些系统库发生了变化,调用程序时经常报错。作为一个python初学者,让程序适应python3环境无疑是困难的。幸运的是,一位伟大的上帝做了这项工作。感谢owolf为python3重写的SDK:sinaweibopy3。我用过,运行正常。你可以下载它。最详细的我也推荐owolf的文章全网:python3调用新浪微博API接口获取数据。
简单例子
先介绍一下新浪微博API的使用流程,供新人参考。
1.参数设置
导入sinaweibopy3
导入浏览器
导入json
APP_KEY ='填写您的应用密钥'
APP_SECRET='填写您的应用密钥'
REDIRECT_URL ='填写您的授权回调页面'
注意:
这个文件需要和sinaweibopy3.py放在同一个文件夹中。
填写的三项信息都是准备中提到的信息。
这里讲一个我粗心造成的bug,给大家提个醒。一开始,我运行程序时,每次都出现“重定向地址不匹配”的错误提示:
使用微博账号登录时出错!授权第三方应用程序时出错。请联系第三方应用的开发者:XXX 或稍后重试。
错误代码:21322 重定向地址不匹配
在网上找解决办法,需要设置回调页面,不过我在前面的步骤中已经设置好了。为什么我还是有这个问题?后来在文章看到一篇文章,提到回调页面地址要和程序中的REDIRECT_URL一致。我想到了程序示例,一开始使用http:。我看填的时候地址是一样的,所以没改。 网站上是https: 一开始,有's'的区别。当时还以为是地址,没想到和原来大不一样!
2.OAuth2.0 验证生成的url
client = sinaweibopy3.APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=REDIRECT_URL)
url = client.get_authorize_url()
webbrowser.open_new(url)
result = client.request_access_token(input("请输入代码:"))
client.set_access_token(result.access_token, result.expires_in)
注:这是在OAuth2.0中调用sinaweibopy3实现用户授权的过程->获取Token。当程序运行到client.request_access_token时,会弹出输入提示“请输入代码:”,询问代码?这是什么意思?打开浏览器,会看到出现OAuth2.0验证回调页面。地址栏中的'code='后面有一串字符。这就是我们想要的Token信息。复制粘贴进去,程序继续运行。
3.从 API 读取数据
运行以下代码读取公共微博数据并显示结果。
result=client.public_timeline()
print(json.dumps(result,indent=2,ensure_ascii=False))
通过查看数据结构,可以提取出具体的信息。例如,使用以下代码输出用户的微博昵称、位置和最新的微博文本。
number=result["total_number"]
print(number,"users:")
对于你的结果["statuses"]:
print(u["user"]["screen_name"])
print(u["user"]["location"])
print(u["text"])
高级
基于新浪微博开放API开发免费开源的微博程序-Xweibo
网站优化 • 优采云 发表了文章 • 0 个评论 • 87 次浏览 • 2021-08-12 20:20
Xweibo是一款基于新浪微博开放API开发的免费开源微博程序。 网站运营商只需要下载X微博安装文件,按照安装向导在服务器上完成安装即可获得完整的微博平台。微博平台收录微博内容的接收、发送、评论、关注、私信等常用功能,并可自定义功能和界面。微博开放平台是基于新浪微博系统的开放信息订阅、分享和交流平台。微博开放平台为您提供海量微博信息、粉丝关系、随时随地发生的信息裂变传播渠道。您可以登录平台创建应用,利用微博平台提供的界面创建有趣的应用或让您的网站具有更强的社交特征。
账号互通,畅游微博世界
1.可以单独使用新浪微博账号登录。
2.可以单独用网站原账号登录。
3.support网站原账号和新浪微博账号选择登录。
4.分享新浪微博海量内容,将网站产生的信息通过微博传播到亿万用户的新浪微博平台,从而获得营销推广机会,与新浪微博共同成长.
高效的运营管理平台
1.User 认证系统:支持在新浪认证、网站认证、新浪认证和网站认证双重认证之间切换。
2.内容推荐:根据用户需求,以多种形式推荐用户和话题。
3.界面管理:模板设置,可选择两栏和三栏模板。
4.信息安全:屏蔽指定内容;有非法信息过滤机制,也可以自定义屏蔽某条微博或评论;可以屏蔽用户,也可以屏蔽指定用户。
5.Skinning 机制:灵活的换肤机制,提供多套炫目的皮肤,可自定义。
6.异地调用功能:提供微博展示单元、用户列表单元、互动话题单元、一键关注单元、群微博单元等多种形式的调用,丰富网站的内容@其他页面。
7.互动模块:活动、直播、采访。
8.扩展设置:焦点位置、轮廓位置、页眉和页脚的推荐设置。
9.Search 功能:为用户和微博提供全面的搜索。
10.数据隔离:可以选择只显示本站的数据。
11.一个页面可以添加多个同类型组件的功能。
12.更多个性化设置:短链接、个性化域名。
完善的内容审核,保障信息安全
1.数据本地备份。
2.六层信息安全审查机制:
第一级:用户筛选和屏蔽。
第二级:非法信息发布过滤(新浪微博帮你完成)
第三层:信息审核和人工排查(新浪微博庞大的24小时内容监控团队会帮你完成)。
第四层:网站运营人员实时排查(X微博管理后台可以实时查看网站发来的微博进行屏蔽)。
第五层:关键词secondary filter(可以在微博管理后台设置关键词filter)。
第六级:违规留言反馈删除通道(可以使用新浪微博举报功能举报需要删除的微博内容)。
多版本
1. 支持移动 WAP 访问。
2. WEB页面信息实时同步,尽享掌上微博无限乐趣。
WAP不需要设置,直接读取WEB管理后台设置。 查看全部
基于新浪微博开放API开发免费开源的微博程序-Xweibo
Xweibo是一款基于新浪微博开放API开发的免费开源微博程序。 网站运营商只需要下载X微博安装文件,按照安装向导在服务器上完成安装即可获得完整的微博平台。微博平台收录微博内容的接收、发送、评论、关注、私信等常用功能,并可自定义功能和界面。微博开放平台是基于新浪微博系统的开放信息订阅、分享和交流平台。微博开放平台为您提供海量微博信息、粉丝关系、随时随地发生的信息裂变传播渠道。您可以登录平台创建应用,利用微博平台提供的界面创建有趣的应用或让您的网站具有更强的社交特征。
账号互通,畅游微博世界
1.可以单独使用新浪微博账号登录。
2.可以单独用网站原账号登录。
3.support网站原账号和新浪微博账号选择登录。
4.分享新浪微博海量内容,将网站产生的信息通过微博传播到亿万用户的新浪微博平台,从而获得营销推广机会,与新浪微博共同成长.
高效的运营管理平台
1.User 认证系统:支持在新浪认证、网站认证、新浪认证和网站认证双重认证之间切换。
2.内容推荐:根据用户需求,以多种形式推荐用户和话题。
3.界面管理:模板设置,可选择两栏和三栏模板。
4.信息安全:屏蔽指定内容;有非法信息过滤机制,也可以自定义屏蔽某条微博或评论;可以屏蔽用户,也可以屏蔽指定用户。
5.Skinning 机制:灵活的换肤机制,提供多套炫目的皮肤,可自定义。
6.异地调用功能:提供微博展示单元、用户列表单元、互动话题单元、一键关注单元、群微博单元等多种形式的调用,丰富网站的内容@其他页面。
7.互动模块:活动、直播、采访。
8.扩展设置:焦点位置、轮廓位置、页眉和页脚的推荐设置。
9.Search 功能:为用户和微博提供全面的搜索。
10.数据隔离:可以选择只显示本站的数据。
11.一个页面可以添加多个同类型组件的功能。
12.更多个性化设置:短链接、个性化域名。
完善的内容审核,保障信息安全
1.数据本地备份。
2.六层信息安全审查机制:
第一级:用户筛选和屏蔽。
第二级:非法信息发布过滤(新浪微博帮你完成)
第三层:信息审核和人工排查(新浪微博庞大的24小时内容监控团队会帮你完成)。
第四层:网站运营人员实时排查(X微博管理后台可以实时查看网站发来的微博进行屏蔽)。
第五层:关键词secondary filter(可以在微博管理后台设置关键词filter)。
第六级:违规留言反馈删除通道(可以使用新浪微博举报功能举报需要删除的微博内容)。
多版本
1. 支持移动 WAP 访问。
2. WEB页面信息实时同步,尽享掌上微博无限乐趣。
WAP不需要设置,直接读取WEB管理后台设置。
基于新浪微博开放API开发免费开源的微博平台内容
网站优化 • 优采云 发表了文章 • 0 个评论 • 68 次浏览 • 2021-08-12 20:18
Xweibo是一款基于新浪微博开放API开发的免费开源微博程序。 网站运营商只需要下载X微博安装文件,按照安装向导在服务器上完成安装即可获得完整的微博平台。微博平台收录微博内容的接收、发送、评论、关注、私信等常用功能,并可自定义功能和界面。微博开放平台是基于新浪微博系统的开放信息订阅、分享和交流平台。微博开放平台为您提供海量微博信息、粉丝关系、随时随地发生的信息裂变传播渠道。您可以登录平台创建应用,利用微博平台提供的界面创建有趣的应用或让您的网站具有更强的社交特征。
账号互通,畅游微博世界
1.可以单独使用新浪微博账号登录。
2.可以单独用网站原账号登录。
3.support网站原账号和新浪微博账号选择登录。
4.分享新浪微博的海量内容,将网站产生的信息通过微博传播到数亿用户的新浪微博平台,获得营销推广机会,与新浪微博共同成长。
高效的运营管理平台
1.User 认证系统:支持在新浪认证、网站认证、新浪认证和网站认证双重认证之间切换。
2.内容推荐:根据用户需求,以多种形式推荐用户和话题。
3.界面管理:模板设置,可选择两栏和三栏模板。
4.信息安全:屏蔽指定内容;有非法信息过滤机制,也可以自定义屏蔽某条微博或评论;可以屏蔽用户,也可以屏蔽指定用户。
5.Skinning 机制:灵活的换肤机制,提供多套炫目的皮肤,可自定义。
6.异地通话功能:提供微博展示单元、用户列表单元、互动话题单元、一键关注单元、群微博单元等多种形式的通话,丰富网站的内容@其他页面。
7.互动模块:活动、直播、采访。
8.扩展设置:焦点位置、轮廓位置、页眉和页脚的推荐设置。
9.Search 功能:为用户和微博提供全面的搜索。
10.数据隔离:可以选择只显示本站的数据。
11.一个页面可以添加多个同类型组件的功能。
12.更多个性化设置:短链接、个性化域名。
完善的内容审核,保障信息安全
1.数据本地备份。
2.六层信息安全审查机制:
第一级:用户筛选和屏蔽。
第二级:非法信息发布过滤(新浪微博帮你完成)
第三层:信息审核和人工排查(新浪微博庞大的24小时内容监控团队会帮你完成)。
第四层:网站运营人员实时排查(X微博管理后台可以实时查看网站发来的微博进行屏蔽)。
第五层:关键词secondary filter(可以在微博管理后台设置关键词filter)。
第六级:违规留言反馈删除通道(可以使用新浪微博举报功能举报需要删除的微博内容)。
多版本
1. 支持移动 WAP 访问。
2. WEB页面信息实时同步,尽享掌上微博无限乐趣。
WAP不需要设置,直接读取WEB管理后台设置。 查看全部
基于新浪微博开放API开发免费开源的微博平台内容
Xweibo是一款基于新浪微博开放API开发的免费开源微博程序。 网站运营商只需要下载X微博安装文件,按照安装向导在服务器上完成安装即可获得完整的微博平台。微博平台收录微博内容的接收、发送、评论、关注、私信等常用功能,并可自定义功能和界面。微博开放平台是基于新浪微博系统的开放信息订阅、分享和交流平台。微博开放平台为您提供海量微博信息、粉丝关系、随时随地发生的信息裂变传播渠道。您可以登录平台创建应用,利用微博平台提供的界面创建有趣的应用或让您的网站具有更强的社交特征。
账号互通,畅游微博世界
1.可以单独使用新浪微博账号登录。
2.可以单独用网站原账号登录。
3.support网站原账号和新浪微博账号选择登录。
4.分享新浪微博的海量内容,将网站产生的信息通过微博传播到数亿用户的新浪微博平台,获得营销推广机会,与新浪微博共同成长。
高效的运营管理平台
1.User 认证系统:支持在新浪认证、网站认证、新浪认证和网站认证双重认证之间切换。
2.内容推荐:根据用户需求,以多种形式推荐用户和话题。
3.界面管理:模板设置,可选择两栏和三栏模板。
4.信息安全:屏蔽指定内容;有非法信息过滤机制,也可以自定义屏蔽某条微博或评论;可以屏蔽用户,也可以屏蔽指定用户。
5.Skinning 机制:灵活的换肤机制,提供多套炫目的皮肤,可自定义。
6.异地通话功能:提供微博展示单元、用户列表单元、互动话题单元、一键关注单元、群微博单元等多种形式的通话,丰富网站的内容@其他页面。
7.互动模块:活动、直播、采访。
8.扩展设置:焦点位置、轮廓位置、页眉和页脚的推荐设置。
9.Search 功能:为用户和微博提供全面的搜索。
10.数据隔离:可以选择只显示本站的数据。
11.一个页面可以添加多个同类型组件的功能。
12.更多个性化设置:短链接、个性化域名。
完善的内容审核,保障信息安全
1.数据本地备份。
2.六层信息安全审查机制:
第一级:用户筛选和屏蔽。
第二级:非法信息发布过滤(新浪微博帮你完成)
第三层:信息审核和人工排查(新浪微博庞大的24小时内容监控团队会帮你完成)。
第四层:网站运营人员实时排查(X微博管理后台可以实时查看网站发来的微博进行屏蔽)。
第五层:关键词secondary filter(可以在微博管理后台设置关键词filter)。
第六级:违规留言反馈删除通道(可以使用新浪微博举报功能举报需要删除的微博内容)。
多版本
1. 支持移动 WAP 访问。
2. WEB页面信息实时同步,尽享掌上微博无限乐趣。
WAP不需要设置,直接读取WEB管理后台设置。
腾讯的文档写的很详细接入方法懂
网站优化 • 优采云 发表了文章 • 0 个评论 • 203 次浏览 • 2021-08-12 07:26
腾讯的文档很详细,很容易实现第三方访问
感觉新浪的文档不是很懂。可能是我的水平有问题。
使用JS的快速访问方法如下
1.先申请App Key、App Secret并绑定域名到新浪申请
2.在微博组件页面可以选择快速放置需要的微博组件
(1) 示例选择放置微博登录组件,
将以下 JS 语句放在标签中
在需要放置微博登录的地方写上如下语句,
标签下写如下JS语句,注意这里的ID要和上面的ID一致
WB2.anyWhere(function(W){
W.widget.connectButton({
id: "wb_connect_btn",
type:"3,2",
callback : {
login:function(o){ //登录后的回调函数
},
logout:function(){ //退出后的回调函数
}
}
});
很简单,我们已经完成了登录微博的任务,但是我们的目的是调用api获取我们想要的数据,所以给出一个简单的API调用的例子。
1. 用户登录时,我们获取授权用户的uid,通过uid获取用户信息。
if(WB2.checkLogin()){/*weibo 登录*/
//var uid;
WB2.anyWhere(function (W) {
/***获取授权用户id***/
W.parseCMD("/account/get_uid.json", function (sResult, bStatus)
{
if (!!bStatus) {
/**请求uid成功后调用以获取用户数据**/
getData(W, sResult);
//alert(sResult.uid);
}else{
alert("授权失败或错误");
}
}, {}, {
method: 'GET'
});
});
function getData(W, User)
{
W.parseCMD("/users/show.json", function(sResult, bStatus){
// alert(sResult.name);
var uid = User.uid;
// alert(nickname);
// xmlhttp.open("GET","http://localhost/CI/index.php/ ... 2Buid,true);
// xmlhttp.send();
},{
/* 传递参数 */
uid : User.uid
},{
method: 'GET'
});
};
这里两次调用新浪api,第一次请求uid,第二次通过uid作为参数请求用户信息,查询新浪api。
细节我就不细说了,如有错误请多多指出。 查看全部
腾讯的文档写的很详细接入方法懂
腾讯的文档很详细,很容易实现第三方访问
感觉新浪的文档不是很懂。可能是我的水平有问题。
使用JS的快速访问方法如下
1.先申请App Key、App Secret并绑定域名到新浪申请
2.在微博组件页面可以选择快速放置需要的微博组件
(1) 示例选择放置微博登录组件,
将以下 JS 语句放在标签中
在需要放置微博登录的地方写上如下语句,
标签下写如下JS语句,注意这里的ID要和上面的ID一致
WB2.anyWhere(function(W){
W.widget.connectButton({
id: "wb_connect_btn",
type:"3,2",
callback : {
login:function(o){ //登录后的回调函数
},
logout:function(){ //退出后的回调函数
}
}
});
很简单,我们已经完成了登录微博的任务,但是我们的目的是调用api获取我们想要的数据,所以给出一个简单的API调用的例子。
1. 用户登录时,我们获取授权用户的uid,通过uid获取用户信息。
if(WB2.checkLogin()){/*weibo 登录*/
//var uid;
WB2.anyWhere(function (W) {
/***获取授权用户id***/
W.parseCMD("/account/get_uid.json", function (sResult, bStatus)
{
if (!!bStatus) {
/**请求uid成功后调用以获取用户数据**/
getData(W, sResult);
//alert(sResult.uid);
}else{
alert("授权失败或错误");
}
}, {}, {
method: 'GET'
});
});
function getData(W, User)
{
W.parseCMD("/users/show.json", function(sResult, bStatus){
// alert(sResult.name);
var uid = User.uid;
// alert(nickname);
// xmlhttp.open("GET","http://localhost/CI/index.php/ ... 2Buid,true);
// xmlhttp.send();
},{
/* 传递参数 */
uid : User.uid
},{
method: 'GET'
});
};
这里两次调用新浪api,第一次请求uid,第二次通过uid作为参数请求用户信息,查询新浪api。
细节我就不细说了,如有错误请多多指出。
使用API提交数据(发布一条微博信息)(组图)
网站优化 • 优采云 发表了文章 • 0 个评论 • 65 次浏览 • 2021-08-12 07:18
我也是新手,第一次使用开放平台进行开发。一开始,我觉得无处可去。经过长时间的摸索,终于成功调用了API。现在把这个经验介绍给新手(高手不需要看,当然,如果你能提出一些意见和建议,我非常感谢),我想和你交流。
这个例子描述了如何使用API提交数据(发布微博)和使用API获取数据(获取最新更新的20条公共微博消息),即“获取下游数据集(时间线)”官方API)“statuses/public_timeline下的“获取最新更新的公众微博消息接口”和“statuses/update发布微博信息”下的“微博访问接口”。
首先,您必须有一个新浪微博账号,并申请一个app key(详情请参考%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97) ,然后在VS中新建一个解决方案,在解决方案中添加一个类库和一个网站,并添加一个引用(网站Reference Class Library)。
因为发布微博是POST请求,获取数据是GET请求,并且是通过HTTP基本认证(Basic Authentication)授权的,所以我把这些函数写在一个类中(在类库中),代码如下如下(这个类仅供参考,没有仔细考虑是否通用):
发送请求和授权码
然后在类库中创建两个实体类status和user,字段与官方API相同:
状态实体类
用户实体类
好的,经过以上步骤,准备工作已经完成,现在可以调用API了。让我们看看发布一条微博消息。虽然在这个文章() 中有介绍,但为了本文的完整性,我还是把它贴出来。上传我的代码,在类库中添加一个微博访问类MiniBlogVisit类:
微博访问班
您可以通过调用更新方法发布微博。但需要注意的是,这里的Content必须使用HttpUtility.UrlEncode进行编码,否则会出现乱码。
最新更新看20条公众微博消息,这是官方API中的第一个接口。这是 XML 数据或 JSON 数据。您可以根据自己的喜好自由选择。我选择返回 XML。数据。我的方法是将返回的XML数据写入XML文件,然后解析XML文件,代码如下:
获取数据代码
好的,现在它被调用了。调用比较简单,是一个空的Default.aspx页面,后台代码如下:
呼叫代码
至此,所有代码都写完了,来看看完整的解决方案:
运行后效果如下:
第一次调用API,也是第一次写这么长的文章。欢迎大家! ! ! 查看全部
使用API提交数据(发布一条微博信息)(组图)
我也是新手,第一次使用开放平台进行开发。一开始,我觉得无处可去。经过长时间的摸索,终于成功调用了API。现在把这个经验介绍给新手(高手不需要看,当然,如果你能提出一些意见和建议,我非常感谢),我想和你交流。
这个例子描述了如何使用API提交数据(发布微博)和使用API获取数据(获取最新更新的20条公共微博消息),即“获取下游数据集(时间线)”官方API)“statuses/public_timeline下的“获取最新更新的公众微博消息接口”和“statuses/update发布微博信息”下的“微博访问接口”。
首先,您必须有一个新浪微博账号,并申请一个app key(详情请参考%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97) ,然后在VS中新建一个解决方案,在解决方案中添加一个类库和一个网站,并添加一个引用(网站Reference Class Library)。

因为发布微博是POST请求,获取数据是GET请求,并且是通过HTTP基本认证(Basic Authentication)授权的,所以我把这些函数写在一个类中(在类库中),代码如下如下(这个类仅供参考,没有仔细考虑是否通用):

发送请求和授权码
然后在类库中创建两个实体类status和user,字段与官方API相同:

状态实体类

用户实体类
好的,经过以上步骤,准备工作已经完成,现在可以调用API了。让我们看看发布一条微博消息。虽然在这个文章() 中有介绍,但为了本文的完整性,我还是把它贴出来。上传我的代码,在类库中添加一个微博访问类MiniBlogVisit类:

微博访问班
您可以通过调用更新方法发布微博。但需要注意的是,这里的Content必须使用HttpUtility.UrlEncode进行编码,否则会出现乱码。
最新更新看20条公众微博消息,这是官方API中的第一个接口。这是 XML 数据或 JSON 数据。您可以根据自己的喜好自由选择。我选择返回 XML。数据。我的方法是将返回的XML数据写入XML文件,然后解析XML文件,代码如下:

获取数据代码
好的,现在它被调用了。调用比较简单,是一个空的Default.aspx页面,后台代码如下:

呼叫代码
至此,所有代码都写完了,来看看完整的解决方案:

运行后效果如下:

第一次调用API,也是第一次写这么长的文章。欢迎大家! ! !