使用新浪微博开放平台api同步微博内容至自己网站

使用新浪微博开放平台api同步微博内容至自己网站

使用新浪微博开放平台api同步微博内容至自己网站(联合第三方平台登录接入,初次接触开放平台和AppSecret5 )

网站优化优采云 发表了文章 • 0 个评论 • 42 次浏览 • 2022-03-21 07:23 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(联合第三方平台登录接入,初次接触开放平台和AppSecret5
)
  最近做了一个关于联合第三方平台的登录访问,第一次接触到开放平台,在这里做个笔记。
  开发前的准备工作如下:
  1、注册新浪微博
  2、访问新浪微博开发平台。如果是企业,申请企业准入并提交相关材料进行审核;如果是个人开发者,请申请个人开发者申请。我们以开发者为例
  3、 使用新浪微博开放API,需要向新浪申请一个appkey和一个App Secret。这些是入口。您必须先获得这两个,然后才能访问下一个作品。
  4、输入完善个人信息后,必须完成身份验证审核。审核完成后,新浪开放平台会给appkey和App Secret
  5、接下来就是如何使用appkey和App Secret了。您需要在开放平台下载文档或演示代码。其实提供的文档基本上都是技术文档,很多东西都没有解释清楚。还是会有很多麻烦
  6、新浪开放平台提供了很多不同开发语言的SDK,这里我选择java SDK,下载一个zip文件(包括新接口和OAuth2.0),解压后即可可以直接导入go到eclipse,结构如下,包括weibo4j源码和示例代码
  
  这里是一个config配置文件,打开如下:
  
  我们之前申请的appkey和App Secret就派上用场了。这里的client_ID为appkey,client_SERCRET为App Secret,填写对应内容,redirect_URI为回调地址。
  点击“第三方”-》跳转微博登录-》登录ok,授权-》回调自己的应用,这里是回调地址的意思。
  7、开始运行测试程序,测试程序在example下,包weibo4j.examples.oauth2下的类OAuth4Code,这里我们需要做一些修改,修改程序在
  oauth.authorize("code", args[0], args[1]),把这一段改成oauth.authorize("code","","all"),至于为什么改这个,请看界面此处的文档 oauth.authorize 使用说明
  假设我们这里没有回调地址,配置文件中的redirect_URI为空。运行后会自动打开浏览器运行测试,显示如下:
  
  此时的URL地址为:
  这里显示我的 appkey 和 App Secret 是有效的。由于我们尚未创建官方应用程序,新浪无法识别我的来源。
  8、在开放平台上创建应用,如下图
  
  这里有三种类型的应用程序,网站 访问、站内应用程序和移动应用程序。如果是企业行为,有公有域名可以访问,应用通过域名访问。这里可以用任何方法,但是如果我们只是一个简单的开发者,没有公网域名,比如内网模式,ip以内网地址192.168.开头1.*,本地127.0.0.1等,这里只能选择创建站内应用,填写如下
  
  这里红框标注的地方就是回调地址。如果我没有公网ip和域名的话,我在局域网玩的时候随便填,但是不能用localhost代替127.0.0.1,这里是按照配置要求做的,这个配置的要求很严格,
  尤其是下面的应用图标比较麻烦。完成后,您可以提交它们以供审核。
  9、提交审核后,新浪开放平台会在1天左右第一时间向您的邮箱发送邮件通知您审核结果,但无论审核结果是否失败,关键是提交审核。没有审核成功,这里可以照常使用
  
  10、完成测试项目中的配置文件redirect_URI,必须和创建应用时填写的【应用实际地址】一致,这个就是回调地址!完成配置后,再次运行OAuth4Code.java,如图
  
  在这里你会跳转到新浪微博的登录页面。登录新浪微博账号后,需要点击授权,表示平台可以访问您的微博账号相关内容分享您的信息等。授权结束后,
  将返回一个代码。这段代码非常重要。它是我们整个访问第三方平台的门钥匙。通过这段代码,我们可以获取到用户的access_token、UID等内容,相当于整个访问过程。
  11、调用新浪微博开放API
  这里我们需要研究这些API来满足访问的需要。首先要熟悉的是OAuth2.0授权接口,网上可以查到,如下:
  
  12、通过servlet程序调用开放API获取新浪微博的UID和微博名的示例
  
  response.setContentType("text/html;charset=UTF-8");
String accessToken = null ;
String uid = null ;
String screenName = null ;
String username = null ;
AccessToken accessTokenObj = null ;
Oauth oauth2 = new Oauth();
try {
out = response.getWriter();
accessTokenObj = oauth2.getAccessTokenByCode(code) ;
logger.info(accessTokenObj);
accessToken = accessTokenObj.getAccessToken() ;
oauth2.setToken(accessToken) ;
Account account = new Account() ;
account.client.setToken(accessToken) ;
JSONObject uidJson = account.getUid() ;
uid = uidJson.getString("uid") ;

Users users = new Users() ;
users.client.setToken(accessToken) ;
User weiboUser = users.showUserById(uid) ;
username = weiboUser.getName() ;
screenName = weiboUser.getScreenName() ;


} catch (WeiboException | IOException | JSONException e) {
e.printStackTrace();
}
out.println("微博访问Token_Info:" + accessTokenObj + "\t");
out.println("微博访问Token:" + accessToken + "\t");
out.println("微博用户-Uid:" + uid + "\t");
out.println("微博用户-名称:" + screenName + "\t");
out.flush();
out.close();*/
   查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(联合第三方平台登录接入,初次接触开放平台和AppSecret5
)
  最近做了一个关于联合第三方平台的登录访问,第一次接触到开放平台,在这里做个笔记。
  开发前的准备工作如下:
  1、注册新浪微博
  2、访问新浪微博开发平台。如果是企业,申请企业准入并提交相关材料进行审核;如果是个人开发者,请申请个人开发者申请。我们以开发者为例
  3、 使用新浪微博开放API,需要向新浪申请一个appkey和一个App Secret。这些是入口。您必须先获得这两个,然后才能访问下一个作品。
  4、输入完善个人信息后,必须完成身份验证审核。审核完成后,新浪开放平台会给appkey和App Secret
  5、接下来就是如何使用appkey和App Secret了。您需要在开放平台下载文档或演示代码。其实提供的文档基本上都是技术文档,很多东西都没有解释清楚。还是会有很多麻烦
  6、新浪开放平台提供了很多不同开发语言的SDK,这里我选择java SDK,下载一个zip文件(包括新接口和OAuth2.0),解压后即可可以直接导入go到eclipse,结构如下,包括weibo4j源码和示例代码
  
  这里是一个config配置文件,打开如下:
  
  我们之前申请的appkey和App Secret就派上用场了。这里的client_ID为appkey,client_SERCRET为App Secret,填写对应内容,redirect_URI为回调地址。
  点击“第三方”-》跳转微博登录-》登录ok,授权-》回调自己的应用,这里是回调地址的意思。
  7、开始运行测试程序,测试程序在example下,包weibo4j.examples.oauth2下的类OAuth4Code,这里我们需要做一些修改,修改程序在
  oauth.authorize("code", args[0], args[1]),把这一段改成oauth.authorize("code","","all"),至于为什么改这个,请看界面此处的文档 oauth.authorize 使用说明
  假设我们这里没有回调地址,配置文件中的redirect_URI为空。运行后会自动打开浏览器运行测试,显示如下:
  
  此时的URL地址为:
  这里显示我的 appkey 和 App Secret 是有效的。由于我们尚未创建官方应用程序,新浪无法识别我的来源。
  8、在开放平台上创建应用,如下图
  
  这里有三种类型的应用程序,网站 访问、站内应用程序和移动应用程序。如果是企业行为,有公有域名可以访问,应用通过域名访问。这里可以用任何方法,但是如果我们只是一个简单的开发者,没有公网域名,比如内网模式,ip以内网地址192.168.开头1.*,本地127.0.0.1等,这里只能选择创建站内应用,填写如下
  
  这里红框标注的地方就是回调地址。如果我没有公网ip和域名的话,我在局域网玩的时候随便填,但是不能用localhost代替127.0.0.1,这里是按照配置要求做的,这个配置的要求很严格,
  尤其是下面的应用图标比较麻烦。完成后,您可以提交它们以供审核。
  9、提交审核后,新浪开放平台会在1天左右第一时间向您的邮箱发送邮件通知您审核结果,但无论审核结果是否失败,关键是提交审核。没有审核成功,这里可以照常使用
  
  10、完成测试项目中的配置文件redirect_URI,必须和创建应用时填写的【应用实际地址】一致,这个就是回调地址!完成配置后,再次运行OAuth4Code.java,如图
  
  在这里你会跳转到新浪微博的登录页面。登录新浪微博账号后,需要点击授权,表示平台可以访问您的微博账号相关内容分享您的信息等。授权结束后,
  将返回一个代码。这段代码非常重要。它是我们整个访问第三方平台的门钥匙。通过这段代码,我们可以获取到用户的access_token、UID等内容,相当于整个访问过程。
  11、调用新浪微博开放API
  这里我们需要研究这些API来满足访问的需要。首先要熟悉的是OAuth2.0授权接口,网上可以查到,如下:
  
  12、通过servlet程序调用开放API获取新浪微博的UID和微博名的示例
  
  response.setContentType("text/html;charset=UTF-8");
String accessToken = null ;
String uid = null ;
String screenName = null ;
String username = null ;
AccessToken accessTokenObj = null ;
Oauth oauth2 = new Oauth();
try {
out = response.getWriter();
accessTokenObj = oauth2.getAccessTokenByCode(code) ;
logger.info(accessTokenObj);
accessToken = accessTokenObj.getAccessToken() ;
oauth2.setToken(accessToken) ;
Account account = new Account() ;
account.client.setToken(accessToken) ;
JSONObject uidJson = account.getUid() ;
uid = uidJson.getString("uid") ;

Users users = new Users() ;
users.client.setToken(accessToken) ;
User weiboUser = users.showUserById(uid) ;
username = weiboUser.getName() ;
screenName = weiboUser.getScreenName() ;


} catch (WeiboException | IOException | JSONException e) {
e.printStackTrace();
}
out.println("微博访问Token_Info:" + accessTokenObj + "\t");
out.println("微博访问Token:" + accessToken + "\t");
out.println("微博用户-Uid:" + uid + "\t");
out.println("微博用户-名称:" + screenName + "\t");
out.flush();
out.close();*/
  

使用新浪微博开放平台api同步微博内容至自己网站(新浪微博API新特点与百度地图API相比,我理解)

网站优化优采云 发表了文章 • 0 个评论 • 64 次浏览 • 2022-03-19 00:04 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博API新特点与百度地图API相比,我理解)
  查看 API 使用流程
  通过百度地图API的使用,了解到API调用的大致流程是:生成API指定格式的url->通过urllib读取url中的数据->解析json格式的数据。接下来开始研究新浪微博API的使用。
  准备
  新浪微博开放平台是使用新浪微博API的平台。使用微博账号登录平台后,即可申请成为开发者,创建新应用后将获得唯一的App Key和App Secret。(注:申请不需要提交审核,只要创建一个新的申请,就会分配Key和Secret。)这两个信息也可以在“我的申请/申请信息/基本信息”中找到. 该页面还有“我的申请/申请信息/高级信息”项,点击进入并设置OAuth2.0授权回调页面的相关信息。如果不知道填什么,可以设置为默认回调Page:。后面需要这三个信息,
  微博API新功能
  新浪微博API与百度地图API相比,增加了OAuth2.0协议进行用户认证和授权。这里只是简单说明一下(有兴趣的同学可以参考网上文档示意图):通过该协议,第三方应用可以获取用户授权,然后使用该License从授权服务器获取token,用于来自 API 服务器的后续查询 验证数据时。
  这个验证过程增加了 url 生成的复杂性。好在网站上已经有廖雪峰老师提供的SDK工具包:sinaweibopy(廖老师的github地址好像改名了,网上很多旧链接都失效了,这是新的有效链接),但是这个程序是基于python2环境编写的,python3的一些系统库已经改了,程序调用的时候经常报错。作为一个python初学者,重写程序以适应python3环境无疑是困难的。幸运的是,有一位大神完成了这项工作。感谢 owolf 为 python3 重写的 SDK:sinweibopy3。我用过,运行正常。你可以下载它。在这里,我也推荐一下owolf的文章
  简单的例子
  介绍一下新浪微博API的使用过程,为新生提供参考。
  1.参数设置
  import sinaweibopy3
import webbrowser
import json
APP_KEY =' 填入你的App Key'
APP_SECRET=' 填入你的App Secret'
REDIRECT_URL =' 填入你的授权回调页'
  笔记:
  这里说一下我的粗心造成的一个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("please input code : "))
client.set_access_token(result.access_token, result.expires_in)
  注意:这是调用sinweibopy3实现用户授权->在OAuth2.0中获取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:")
for u in result["statuses"]:
print(u["user"]["screen_name"])
print(u["user"]["location"])
print(u["text"])
  先进的 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博API新特点与百度地图API相比,我理解)
  查看 API 使用流程
  通过百度地图API的使用,了解到API调用的大致流程是:生成API指定格式的url->通过urllib读取url中的数据->解析json格式的数据。接下来开始研究新浪微博API的使用。
  准备
  新浪微博开放平台是使用新浪微博API的平台。使用微博账号登录平台后,即可申请成为开发者,创建新应用后将获得唯一的App Key和App Secret。(注:申请不需要提交审核,只要创建一个新的申请,就会分配Key和Secret。)这两个信息也可以在“我的申请/申请信息/基本信息”中找到. 该页面还有“我的申请/申请信息/高级信息”项,点击进入并设置OAuth2.0授权回调页面的相关信息。如果不知道填什么,可以设置为默认回调Page:。后面需要这三个信息,
  微博API新功能
  新浪微博API与百度地图API相比,增加了OAuth2.0协议进行用户认证和授权。这里只是简单说明一下(有兴趣的同学可以参考网上文档示意图):通过该协议,第三方应用可以获取用户授权,然后使用该License从授权服务器获取token,用于来自 API 服务器的后续查询 验证数据时。
  这个验证过程增加了 url 生成的复杂性。好在网站上已经有廖雪峰老师提供的SDK工具包:sinaweibopy(廖老师的github地址好像改名了,网上很多旧链接都失效了,这是新的有效链接),但是这个程序是基于python2环境编写的,python3的一些系统库已经改了,程序调用的时候经常报错。作为一个python初学者,重写程序以适应python3环境无疑是困难的。幸运的是,有一位大神完成了这项工作。感谢 owolf 为 python3 重写的 SDK:sinweibopy3。我用过,运行正常。你可以下载它。在这里,我也推荐一下owolf的文章
  简单的例子
  介绍一下新浪微博API的使用过程,为新生提供参考。
  1.参数设置
  import sinaweibopy3
import webbrowser
import json
APP_KEY =' 填入你的App Key'
APP_SECRET=' 填入你的App Secret'
REDIRECT_URL =' 填入你的授权回调页'
  笔记:
  这里说一下我的粗心造成的一个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("please input code : "))
client.set_access_token(result.access_token, result.expires_in)
  注意:这是调用sinweibopy3实现用户授权->在OAuth2.0中获取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:")
for u in result["statuses"]:
print(u["user"]["screen_name"])
print(u["user"]["location"])
print(u["text"])
  先进的

使用新浪微博开放平台api同步微博内容至自己网站(Google+Hangout新功能曝光:屏幕共享、谷歌文档)

网站优化优采云 发表了文章 • 0 个评论 • 79 次浏览 • 2022-03-17 01:10 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(Google+Hangout新功能曝光:屏幕共享、谷歌文档)
  9月21日消息,据外媒报道,随着Google+正式向公众开放,谷歌今天在其官方博客中宣布了一系列新的Hangout功能,同时也为开发者开放了Hangouts API接口。
  
  大约一周前,媒体预测 Google+ 的 API 至少需要几个月的时间。然而,预测后的第二天,谷歌就招募了“值得信赖的”开发人员对 Google+ API 进行内部测试。谷歌当时不喜欢这个消息,并试图寻找告密者。然而,今天,这些 API 已被确认正式开放。
  据了解,Hangouts API 目前仅处于“开发者预览”阶段,产品尚未成熟,仅开放用于测试目的。这些新的 API 允许开发人员在环聊或 Google 的 Youtube 播放器等实时应用程序中创建自己的体验。Youtube 播放器使 Google+ 用户可以通过环聊功能同时观看视频节目。
  Google 今天还宣布了 Google+ Hangout 的新功能,例如屏幕共享、Google Docs 编辑和绘图,激励开发人员充分利用 Hangouts API 来开发更具创意的应用程序。
  API开放的消息已经在Google+官方博客上看到了。目前,API 开发的重点是共享公共信息,而不是访问用户的社交圈。API 的权限是“只读的”,但这对于喜欢 Google+ 的开发者来说已经足够了。
  Google+的核心是圈子,所以只有能访问朋友圈的API才是开发者真正期待的。但是,这样的 API 可能需要等待很长时间,因为它过于复杂并且涉及棘手的隐私问题。
  要使用这些 API,开发人员需要创建一个 Web 应用程序并在 Google 注册。开发者还需要指定允许加载应用程序的开发者,然后程序就可以像普通的 Web 应用程序一样运行,并且可以同步使用 API。通过为应用创建“共享状态”,用户可以即时获取参与共享者的状态信息。这包括多媒体播放 API 的状态信息,Hangout 参与者可以即时更新其他人的“静音”、“影评”等信息。
  至于 Hangouts,媒体对 Google+ Hangouts 的高度关注源于 Facebook 提供了许多类似的功能,这迫使 Google+ 的受欢迎程度下降。不难想象,谷歌肯定会推广新的环聊功能,并认为这是 Facebook 所没有的服务。虽然 Facebook 已经通过与 Skype 的集成来提供视频聊天,但它仅限于两个人,而不是一个群组。
  Hangouts 对开发者来说很有趣,开发者可以创建在线会议、网络播客、在线教程、在线游戏等应用程序,这些应用程序可能会成为那些付费应用程序的潜在替代品。
  谷歌工程师克里斯·查博特 (Chris Chabot) 在 Google+ 官方博客上写道,“这些 API 接口允许用户获取发布在 Google+ 上的公共信息,这对我们来说是一个开始。世界上没有好的东西。它建立在一个真空,现在我们有了这个基础,我们可以讨论如何让 Google+ 变得更好。” 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(Google+Hangout新功能曝光:屏幕共享、谷歌文档)
  9月21日消息,据外媒报道,随着Google+正式向公众开放,谷歌今天在其官方博客中宣布了一系列新的Hangout功能,同时也为开发者开放了Hangouts API接口。
  
  大约一周前,媒体预测 Google+ 的 API 至少需要几个月的时间。然而,预测后的第二天,谷歌就招募了“值得信赖的”开发人员对 Google+ API 进行内部测试。谷歌当时不喜欢这个消息,并试图寻找告密者。然而,今天,这些 API 已被确认正式开放。
  据了解,Hangouts API 目前仅处于“开发者预览”阶段,产品尚未成熟,仅开放用于测试目的。这些新的 API 允许开发人员在环聊或 Google 的 Youtube 播放器等实时应用程序中创建自己的体验。Youtube 播放器使 Google+ 用户可以通过环聊功能同时观看视频节目。
  Google 今天还宣布了 Google+ Hangout 的新功能,例如屏幕共享、Google Docs 编辑和绘图,激励开发人员充分利用 Hangouts API 来开发更具创意的应用程序。
  API开放的消息已经在Google+官方博客上看到了。目前,API 开发的重点是共享公共信息,而不是访问用户的社交圈。API 的权限是“只读的”,但这对于喜欢 Google+ 的开发者来说已经足够了。
  Google+的核心是圈子,所以只有能访问朋友圈的API才是开发者真正期待的。但是,这样的 API 可能需要等待很长时间,因为它过于复杂并且涉及棘手的隐私问题。
  要使用这些 API,开发人员需要创建一个 Web 应用程序并在 Google 注册。开发者还需要指定允许加载应用程序的开发者,然后程序就可以像普通的 Web 应用程序一样运行,并且可以同步使用 API。通过为应用创建“共享状态”,用户可以即时获取参与共享者的状态信息。这包括多媒体播放 API 的状态信息,Hangout 参与者可以即时更新其他人的“静音”、“影评”等信息。
  至于 Hangouts,媒体对 Google+ Hangouts 的高度关注源于 Facebook 提供了许多类似的功能,这迫使 Google+ 的受欢迎程度下降。不难想象,谷歌肯定会推广新的环聊功能,并认为这是 Facebook 所没有的服务。虽然 Facebook 已经通过与 Skype 的集成来提供视频聊天,但它仅限于两个人,而不是一个群组。
  Hangouts 对开发者来说很有趣,开发者可以创建在线会议、网络播客、在线教程、在线游戏等应用程序,这些应用程序可能会成为那些付费应用程序的潜在替代品。
  谷歌工程师克里斯·查博特 (Chris Chabot) 在 Google+ 官方博客上写道,“这些 API 接口允许用户获取发布在 Google+ 上的公共信息,这对我们来说是一个开始。世界上没有好的东西。它建立在一个真空,现在我们有了这个基础,我们可以讨论如何让 Google+ 变得更好。”

使用新浪微博开放平台api同步微博内容至自己网站(做微博树洞的几种方法和解决办法!(上))

网站优化优采云 发表了文章 • 0 个评论 • 60 次浏览 • 2022-03-17 00:04 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(做微博树洞的几种方法和解决办法!(上))
  最近一直在做微博树洞,大致的格局如下:
  在网站中提供两个函数:1.发送树洞状态;2. 显示树洞状态。
  1.毛树洞的状态:
  这个比较简单,调用微博API接口即可。(/状态/更新)
  我的做法是给用户提供一个表单,直接把表单提交给我网站,然后我网站调用API接口,这样可以避免ACCESS_TOKEN的泄露。也有缺点。当我的服务器发送时,在某个时间更多的用户可能会导致带宽不佳。毕竟,服务器需要同时请求数据和响应数据。但就目前用户数量不大,操作体验还是不错的。
  显示树洞的状态:
  最初的想法是在展示页面上直接通过服务器向微博API提交获取微博数据的请求,即用户每次访问该页面时,都会向微博API提交一个请求。这是最方便快捷的实现方式,当然也有明显的缺陷。
  展示页面是网站的首页,所以网站页面需要在生成页面前请求微博API。所以,首页打开速度会变得很慢,所以后台做了一些缓存工作。. 逻辑大概是这样的,把微博数据缓存在数据库里,只缓存几条,然后统计数据库的访问次数,每20次访问一次,删除原来的微博数据,重新恢复里面的内容微博缓存在数据库中。这样就不用每次都请求微博API了,请求次数减少了,也不容易被限制卡住。(计数阈值可以改变,可以根据不同的时间段进行不同的设置) 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(做微博树洞的几种方法和解决办法!(上))
  最近一直在做微博树洞,大致的格局如下:
  在网站中提供两个函数:1.发送树洞状态;2. 显示树洞状态。
  1.毛树洞的状态:
  这个比较简单,调用微博API接口即可。(/状态/更新)
  我的做法是给用户提供一个表单,直接把表单提交给我网站,然后我网站调用API接口,这样可以避免ACCESS_TOKEN的泄露。也有缺点。当我的服务器发送时,在某个时间更多的用户可能会导致带宽不佳。毕竟,服务器需要同时请求数据和响应数据。但就目前用户数量不大,操作体验还是不错的。
  显示树洞的状态:
  最初的想法是在展示页面上直接通过服务器向微博API提交获取微博数据的请求,即用户每次访问该页面时,都会向微博API提交一个请求。这是最方便快捷的实现方式,当然也有明显的缺陷。
  展示页面是网站的首页,所以网站页面需要在生成页面前请求微博API。所以,首页打开速度会变得很慢,所以后台做了一些缓存工作。. 逻辑大概是这样的,把微博数据缓存在数据库里,只缓存几条,然后统计数据库的访问次数,每20次访问一次,删除原来的微博数据,重新恢复里面的内容微博缓存在数据库中。这样就不用每次都请求微博API了,请求次数减少了,也不容易被限制卡住。(计数阈值可以改变,可以根据不同的时间段进行不同的设置)

使用新浪微博开放平台api同步微博内容至自己网站(就是.php新浪微博的操作类和认证类,就是SDK)

网站优化优采云 发表了文章 • 0 个评论 • 49 次浏览 • 2022-03-16 04:22 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(就是.php新浪微博的操作类和认证类,就是SDK)
  saetv2.ex.class.php 新浪微博的操作类和认证类是SDK,里面有很多注解可以作为API使用
  Weibolist.php 我们要实现的功能都在这个php页面中
  文件执行顺序为:index.php->callback.php—>weibolist.php
  首先,在 index.php 中请求授权。跳转到callback.php后授权成功,然后进入weibolist.php进行相应的操作。
  在weibolist.php中会实例化一个“微博操作类”,然后可以进行一系列的方法调用。
  3、具体代码实现
  首先修改config.php中的配置信息,填写我们刚才记录的WB_AKEY和WB_SKEY,这里要特别注意WB_CALLBACK_URL回调页面地址的填写,HTTP不能省略,完整的URL需要填写
  其实一目了然,介绍配置文件、类库、实例化对象、传递参数、调用方法、返回值。
  例如:
  $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['token']['access_token'] );
  Saetv2.ex.class.php中有两个类:微博操作类SaeTClientV2,微博认证类SaeTOAuthV2。
  操作类实例化所需的参数($akey, $skey, $access_token),access_token需要从认证类中获取。只有获取到用户的access_token,我们才能对用户进行操作。
  在回调.php 中:
  setcookie( 'weibojs_'.$o->client_id, http_build_query($token) );
  callback.php中获取的access_token存放在session中,创建微博操作类时可以使用。
  $ms = $c->home_timeline();
  打开类库文件找到home_timeline方法,获取当前登录用户及其关注用户的最新微博消息。API写得很清楚。如果你有更多的时间,你可以阅读源代码。
   1 /**
2 * 获取当前登录用户及其所关注用户的最新微博消息。
3 *
4 * 获取当前登录用户及其所关注用户的最新微博消息。和用户登录 http://weibo.com 后在“我的首页”中看到的内容相同。同friends_timeline()
5 * <br />对应API:{@link http://open.weibo.com/wiki/2/s ... eline statuses/home_timeline}
6 *
7 * @access public
8 * @param int $page 指定返回结果的页码。根据当前登录用户所关注的用户数及这些被关注用户发表的微博数,翻页功能最多能查看的总记录数会有所不同,通常最多能查看1000条左右。默认值1。可选。
9 * @param int $count 每次返回的记录数。缺省值50,最大值200。可选。
10 * @param int $since_id 若指定此参数,则只返回ID比since_id大的微博消息(即比since_id发表时间晚的微博消息)。可选。
11 * @param int $max_id 若指定此参数,则返回ID小于或等于max_id的微博消息。可选。
12 * @param int $base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0。
13 * @param int $feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
14 * @return array
15 */
16 function home_timeline( $page = 1, $count = 50, $since_id = 0, $max_id = 0, $base_app = 0, $feature = 0 )
17 {
18 $params = array();
19 if ($since_id) {
20 $this->id_format($since_id);
21 $params['since_id'] = $since_id;
22 }
23 if ($max_id) {
24 $this->id_format($max_id);
25 $params['max_id'] = $max_id;
26 }
27 $params['count'] = intval($count);
28 $params['page'] = intval($page);
29 $params['base_app'] = intval($base_app);
30 $params['feature'] = intval($feature);
31
32 return $this->oauth->get('statuses/home_timeline', $params);
33 }
  很简单,对吧?想办法尝试一下。
  写个表格发个微博试试
  
  
  
哈哈,是不是很简单呢?
再试试获取关注人ID
   1 /**
2 * 获取用户的双向关注uid列表
3 *
4 * 对应API:{@link http://open.weibo.com/wiki/2/f ... l/ids friendships/friends/bilateral/ids}
5 *
6 * @param int $uid 需要获取双向关注列表的用户UID。
7 * @param int $count 单页返回的记录条数,默认为50。
8 * @param int $page 返回结果的页码,默认为1。
9 * @param int $sort 排序类型,0:按关注时间最近排序,默认为0。
10 * @return array
11 **/
12 function bilateral_ids( $uid, $page = 1, $count = 50, $sort = 0)
13 {
14 $params = array();
15 $params['uid'] = $uid;
16 $params['count'] = $count;
17 $params['page'] = $page;
18 $params['sort'] = $sort;
19 return $this->oauth->get( 'friendships/friends/bilateral/ids', $params );
20 }
   1
  打开得到如下数据:
  Array
(
[ids] => Array
(
[0] => 2365402665
[1] => 2874824370
[2] => 2458103930
[3] => 2631415422
[4] => 1726492234
[5] => 3307625345
[6] => 1748961617
[7] => 1898400044
[8] => 5074409657
[9] => 1459729954
[10] => 1960937255
[11] => 3002010437
[12] => 1840024911
[13] => 1933041827
[14] => 3544004403
[15] => 2218615153
[16] => 1710952872
[17] => 3296525792
[18] => 2023869922
[19] => 1136908732
[20] => 5142045518
[21] => 2113440863
[22] => 2882182570
[23] => 2750918083
[24] => 5047720995
[25] => 3237485452
[26] => 2301448374
[27] => 2241922934
[28] => 3194061564
[29] => 1516453591
[30] => 3046227467
[31] => 2990824405
[32] => 2901804343
[33] => 2062251914
[34] => 1846033411
[35] => 3024328843
[36] => 3989444339
[37] => 3937835581
[38] => 2951303393
[39] => 38376110
[40] => 2403647687
[41] => 2637451094
[42] => 2257435150
[43] => 2997619907
[44] => 2272664314
[45] => 1858542007
[46] => 3566646574
[47] => 3017416653
[48] => 2017817897
[49] => 3270778184
)
[total_number] => 198
)
  然后我们可以根据UID获取更多的信息,比如用户名、基本信息等。
  
  内容很多,就不一一展示了
  感兴趣的朋友可以看看saetv2.ex.class.php文件
  官网提供的API:%E5%BE%AE%E5%8D%9AAPI
  好了,到此结束,毕竟只是介绍
  有时间我会写一篇微博开放平台的入门应用介绍~见 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(就是.php新浪微博的操作类和认证类,就是SDK)
  saetv2.ex.class.php 新浪微博的操作类和认证类是SDK,里面有很多注解可以作为API使用
  Weibolist.php 我们要实现的功能都在这个php页面中
  文件执行顺序为:index.php-&gt;callback.php—&gt;weibolist.php
  首先,在 index.php 中请求授权。跳转到callback.php后授权成功,然后进入weibolist.php进行相应的操作。
  在weibolist.php中会实例化一个“微博操作类”,然后可以进行一系列的方法调用。
  3、具体代码实现
  首先修改config.php中的配置信息,填写我们刚才记录的WB_AKEY和WB_SKEY,这里要特别注意WB_CALLBACK_URL回调页面地址的填写,HTTP不能省略,完整的URL需要填写
  其实一目了然,介绍配置文件、类库、实例化对象、传递参数、调用方法、返回值。
  例如:
  $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['token']['access_token'] );
  Saetv2.ex.class.php中有两个类:微博操作类SaeTClientV2,微博认证类SaeTOAuthV2。
  操作类实例化所需的参数($akey, $skey, $access_token),access_token需要从认证类中获取。只有获取到用户的access_token,我们才能对用户进行操作。
  在回调.php 中:
  setcookie( 'weibojs_'.$o->client_id, http_build_query($token) );
  callback.php中获取的access_token存放在session中,创建微博操作类时可以使用。
  $ms = $c-&gt;home_timeline();
  打开类库文件找到home_timeline方法,获取当前登录用户及其关注用户的最新微博消息。API写得很清楚。如果你有更多的时间,你可以阅读源代码。
   1 /**
2 * 获取当前登录用户及其所关注用户的最新微博消息。
3 *
4 * 获取当前登录用户及其所关注用户的最新微博消息。和用户登录 http://weibo.com 后在“我的首页”中看到的内容相同。同friends_timeline()
5 * <br />对应API:{@link http://open.weibo.com/wiki/2/s ... eline statuses/home_timeline}
6 *
7 * @access public
8 * @param int $page 指定返回结果的页码。根据当前登录用户所关注的用户数及这些被关注用户发表的微博数,翻页功能最多能查看的总记录数会有所不同,通常最多能查看1000条左右。默认值1。可选。
9 * @param int $count 每次返回的记录数。缺省值50,最大值200。可选。
10 * @param int $since_id 若指定此参数,则只返回ID比since_id大的微博消息(即比since_id发表时间晚的微博消息)。可选。
11 * @param int $max_id 若指定此参数,则返回ID小于或等于max_id的微博消息。可选。
12 * @param int $base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0。
13 * @param int $feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
14 * @return array
15 */
16 function home_timeline( $page = 1, $count = 50, $since_id = 0, $max_id = 0, $base_app = 0, $feature = 0 )
17 {
18 $params = array();
19 if ($since_id) {
20 $this->id_format($since_id);
21 $params['since_id'] = $since_id;
22 }
23 if ($max_id) {
24 $this->id_format($max_id);
25 $params['max_id'] = $max_id;
26 }
27 $params['count'] = intval($count);
28 $params['page'] = intval($page);
29 $params['base_app'] = intval($base_app);
30 $params['feature'] = intval($feature);
31
32 return $this->oauth->get('statuses/home_timeline', $params);
33 }
  很简单,对吧?想办法尝试一下。
  写个表格发个微博试试
  
  
  
哈哈,是不是很简单呢?
再试试获取关注人ID
   1 /**
2 * 获取用户的双向关注uid列表
3 *
4 * 对应API:{@link http://open.weibo.com/wiki/2/f ... l/ids friendships/friends/bilateral/ids}
5 *
6 * @param int $uid 需要获取双向关注列表的用户UID。
7 * @param int $count 单页返回的记录条数,默认为50。
8 * @param int $page 返回结果的页码,默认为1。
9 * @param int $sort 排序类型,0:按关注时间最近排序,默认为0。
10 * @return array
11 **/
12 function bilateral_ids( $uid, $page = 1, $count = 50, $sort = 0)
13 {
14 $params = array();
15 $params['uid'] = $uid;
16 $params['count'] = $count;
17 $params['page'] = $page;
18 $params['sort'] = $sort;
19 return $this->oauth->get( 'friendships/friends/bilateral/ids', $params );
20 }
   1
  打开得到如下数据:
  Array
(
[ids] => Array
(
[0] => 2365402665
[1] => 2874824370
[2] => 2458103930
[3] => 2631415422
[4] => 1726492234
[5] => 3307625345
[6] => 1748961617
[7] => 1898400044
[8] => 5074409657
[9] => 1459729954
[10] => 1960937255
[11] => 3002010437
[12] => 1840024911
[13] => 1933041827
[14] => 3544004403
[15] => 2218615153
[16] => 1710952872
[17] => 3296525792
[18] => 2023869922
[19] => 1136908732
[20] => 5142045518
[21] => 2113440863
[22] => 2882182570
[23] => 2750918083
[24] => 5047720995
[25] => 3237485452
[26] => 2301448374
[27] => 2241922934
[28] => 3194061564
[29] => 1516453591
[30] => 3046227467
[31] => 2990824405
[32] => 2901804343
[33] => 2062251914
[34] => 1846033411
[35] => 3024328843
[36] => 3989444339
[37] => 3937835581
[38] => 2951303393
[39] => 38376110
[40] => 2403647687
[41] => 2637451094
[42] => 2257435150
[43] => 2997619907
[44] => 2272664314
[45] => 1858542007
[46] => 3566646574
[47] => 3017416653
[48] => 2017817897
[49] => 3270778184
)
[total_number] => 198
)
  然后我们可以根据UID获取更多的信息,比如用户名、基本信息等。
  
  内容很多,就不一一展示了
  感兴趣的朋友可以看看saetv2.ex.class.php文件
  官网提供的API:%E5%BE%AE%E5%8D%9AAPI
  好了,到此结束,毕竟只是介绍
  有时间我会写一篇微博开放平台的入门应用介绍~见

使用新浪微博开放平台api同步微博内容至自己网站(腾讯微博开放平台开发者服务协议如何开发微博应用?(图))

网站优化优采云 发表了文章 • 0 个评论 • 81 次浏览 • 2022-03-16 04:21 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(腾讯微博开放平台开发者服务协议如何开发微博应用?(图))
  腾讯微博开放平台API开放。使用腾讯微博开放平台提供的API创建自己的应用,需要先填写个人信息,验证邮箱,取得开发者资质,然后才能创建自己的应用。腾讯微博开放平台是基于腾讯微博系统的面向开发者和用户的开放数据共享和传播平台。广大开发者和用户登录平台后,可以利用平台提供的开放API接口创建应用程序,从微博系统中获取信息,或者向整个微博系统传播新的信息。用你的智慧,将创造出无穷无尽的应用和乐趣。
  平台使用说明:
  腾讯微博开放平台是基于腾讯微博系统的面向开发者和用户的开放数据共享和传播平台。广大开发者和用户登录平台后,可以利用平台提供的开放API接口创建应用程序,从微博系统中获取信息,或者向整个微博系统传播新的信息。依靠您的智慧,将创造出无穷无尽的应用和乐趣!
  平台介绍——微博开放平台可以获得的资源和优势
  应用程序开发说明 - 解释如何成为开发人员并创建应用程序
  应用审核流程 - 审核应用源字段的好处以及如何审核
  开发者协议——查看腾讯微博开放平台开发者服务协议
  如何开发微博应用?(现在成为开发人员)
  您只需要按照以下步骤操作:
  第一步:填写你的开发者信息;
  第二步:验证联系邮箱;(邮箱将作为我们联系您的重要方式,请提供常用邮箱)
  第三步:填写要创建的应用信息。
  您可以立即获取微博App Key和App Secret,并调用微博API进行应用开发。查看详细说明
  ----
  腾讯,代表中国最先进的互联网技术,终于迈出了开放的第一步:-) 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(腾讯微博开放平台开发者服务协议如何开发微博应用?(图))
  腾讯微博开放平台API开放。使用腾讯微博开放平台提供的API创建自己的应用,需要先填写个人信息,验证邮箱,取得开发者资质,然后才能创建自己的应用。腾讯微博开放平台是基于腾讯微博系统的面向开发者和用户的开放数据共享和传播平台。广大开发者和用户登录平台后,可以利用平台提供的开放API接口创建应用程序,从微博系统中获取信息,或者向整个微博系统传播新的信息。用你的智慧,将创造出无穷无尽的应用和乐趣。
  平台使用说明:
  腾讯微博开放平台是基于腾讯微博系统的面向开发者和用户的开放数据共享和传播平台。广大开发者和用户登录平台后,可以利用平台提供的开放API接口创建应用程序,从微博系统中获取信息,或者向整个微博系统传播新的信息。依靠您的智慧,将创造出无穷无尽的应用和乐趣!
  平台介绍——微博开放平台可以获得的资源和优势
  应用程序开发说明 - 解释如何成为开发人员并创建应用程序
  应用审核流程 - 审核应用源字段的好处以及如何审核
  开发者协议——查看腾讯微博开放平台开发者服务协议
  如何开发微博应用?(现在成为开发人员)
  您只需要按照以下步骤操作:
  第一步:填写你的开发者信息;
  第二步:验证联系邮箱;(邮箱将作为我们联系您的重要方式,请提供常用邮箱)
  第三步:填写要创建的应用信息。
  您可以立即获取微博App Key和App Secret,并调用微博API进行应用开发。查看详细说明
  ----
  腾讯,代表中国最先进的互联网技术,终于迈出了开放的第一步:-)

使用新浪微博开放平台api同步微博内容至自己网站(有时候整合新浪微博的独立博客是怎么做的??)

网站优化优采云 发表了文章 • 0 个评论 • 105 次浏览 • 2022-03-16 04:20 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(有时候整合新浪微博的独立博客是怎么做的??)
  随着新浪微博用户数量的增加,我们有时会考虑将新浪微博整合到我们的网站中。比如我现在的独立博客。
  我博客中的整合主要有以下几个方面:我写了一篇文章文章,会同步发到微博。同时,用户可以用自己的微博账号登录,可以选择将文章的评论同步到文章的微博。此外,用户可以选择是否将博客消息同步到新浪微博。
  新浪微博开放平台地址在这里。文档地址在这里。
  首先要涉及的问题是用户用自己的新浪微博账号登录的问题,也就是授权机制。有两种基本方法:
  OAuth Basic auth(需要强调的是,微博开放平台将于6月1日正式停止对Basic Auth的支持,所以这个方法不做讨论,其实需要用户名和密码的方法本身就是不安全的。)
  OAuth新浪官方文档在这里。想了解OAuth技术说明的可以访问项目主页。
  其实OAuth的过程还是很简单的。大致如下:
  调用 API 获取请求令牌。将用户重定向到授权页面(auth url)。用户输入用户名和密码完成授权。重定向到 Callback_url。向新浪微博交换请求令牌以获得访问令牌。结束。
  大致了解了OAuth的原理后,既然我们是集成到Django中,自然需要下载微博SDK的Python版本。
  不过,在这一切开始之前,您必须向新浪微博申请您的应用程序。申请地址在这里。这里需要强调的是,应用以后需要申请审核,因为只有审核通过后,才能在源中显示个性化的应用名称。因此,在申请时,要注意申请介绍信息的完整性和正确的申请分类。(在这个例子中,我们的分类是 Collaboration网站。)
  申请完成后,您将获得您的应用程序的 App Key 和 App Secret。
  回到授权用户登录的主题。要允许新浪微博帐号访问,首先我们需要在 urlpatterns 中添加几个 URL。如下:
  urlpatterns = patterns('projectname.appname.views', url(r'^log/$', 'login', name='log'), url(r'^logincheck/$', 'login_check', name='logcheck'), url(r'^logout/$', 'logout', name='logout'), )
  接下来,我们启动视图文件。代码:
  #!/usr/bin/env python # -*- coding: utf-8 -*- """ 基于django的新浪微博oauth views 需要django的session支持 """ from django.http import HttpResponseRedirect from weibopy.auth import OAuthHandler, WeibopError from weibopy import oauth consumer_key = '' # 设置你申请的appkey consumer_secret = '' # 设置你申请的appkey对于的secret class WebOAuthHandler(OAuthHandler): def get_authorization_url_with_callback(self, callback, signin_with_推ter=False): """Get the authorization URL to redirect the user""" try: # get the request token self.request_token = self._get_request_token() # build auth request and return as url if signin_with_推ter: url = self._get_oauth_url('authenticate') else: url = self._get_oauth_url('authorize') request = oauth.OAuthRequest.from_token_and_callback( token=self.request_token, callback=callback, http_url=url ) return request.to_url() except Exception, e: raise WeibopError(e) def _get_referer_url(request): referer_url = request.META.get('HTTP_REFERER', '/') host = request.META['HTTP_HOST'] if referer_url.startswith('http') and host not in referer_url: referer_url = '/' # 避免外站直接跳到登录页而发生跳转错误 return referer_url def _oauth(): """获取oauth认证类""" return WebOAuthHandler(consumer_key, consumer_secret) def login(request): # 保存最初的登录url,以便认证成功后跳转回来 back_to_url = _get_referer_url(request) request.session['login_back_to_url'] = back_to_url # 获取oauth认证url login_backurl = request.build_absolute_uri('/logincheck') auth_client = _oauth() auth_url = auth_client.get_authorization_url_with_callback(login_backurl) # 保存request_token,用户登录后需要使用它来获取access_token request.session['oauth_request_token'] = auth_client.request_token # 跳转到登录页面 return HttpResponseRedirect(auth_url) def login_check(request): """用户成功登录授权后,会回调此方法,获取access_token,完成授权""" # http://mk2.com/%3Foauth_token% ... 03896 verifier = request.GET.get('oauth_verifier', None) auth_client = _oauth() # 设置之前保存在session的request_token request_token = request.session['oauth_request_token'] del request.session['oauth_request_token'] auth_client.set_request_token(request_token.key, request_token.secret) access_token = auth_client.get_access_token(verifier) # 保存access_token,以后访问只需使用access_token即可 request.session['oauth_access_token'] = access_token # 跳转回最初登录前的页面 back_to_url = request.session.get('login_back_to_url', '/') return HttpResponseRedirect(back_to_url) def logout(request): """用户登出,直接删除access_token""" del request.session['oauth_access_token'] back_to_url = _get_referer_url(request) return HttpResponseRedirect(back_to_url)
  完成授权码之后,我们就需要知道怎么给新浪微博发消息了。其实下载的SDK下的exanples文件夹下的examples(是的,其实就是examples,这个英文水平不能抱怨),修改后直接使用即可。以 oauthSetTokenUpdate.py 为例,我们可以这样写:
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '应用的key' consumer_secret ='应用的App Secret' auth = OAuthHandler(consumer_key, consumer_secret) auth_url = auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() auth.get_access_token(verifier) api = API(auth) status = api.update_status(status='hello world', lat='12.3', long='45.6') # 注意status必须是UTF-8编码的字符串,经纬度是可以不写的 print status.id print status.text
  运行程序会提示一个 URL 链接,在浏览器中打开链接,并授予访问权限,你会得到一串 PIN 码。输入此 PIN 并发送推送,并且还将显示用户的访问令牌密钥和访问令牌密码。
  但是,这样做是不是有点太书呆子了?其实只要知道Access token key和Access token secret,我们就可以直接使用它们来创建API对象:
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '应用的key' consumer_secret ='应用的App Secret' token = '用户的Access token key' tokenSecret = '用户的Access token secret' auth = OAuthHandler(consumer_key, consumer_secret) auth.setToken(token, tokenSecret) api = API(auth) status = api.update_status(status='搞定收工~')
  这时候我们可以重构代码,写一个微博类来实现以上功能,实现一些api操作。
  class weibo(object): def __init__(self): self.consumer_key = consumer_key self.consumer_secret = consumer_secret def getAtt(self, key): try: return self.obj.__getattribute__(key) except Exception, e: print e return '' def getAttValue(self, obj, key): try: return obj.__getattribute__(key) except Exception, e: print e return '' def auth(self): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) auth_url = self.auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() self.auth.get_access_token(verifier) self.api = API(self.auth) def setToken(self, token, tokenSecret): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) self.auth.setToken(token, tokenSecret) self.api = API(self.auth) def update(self, message): message = message.encode("utf-8") status = self.api.update_status(status=message) self.obj = status id = self.getAtt("id") return id def destroy_status(self, id): status = self.api.destroy_status(id) self.obj = status id = self.getAtt("id") return id def comment(self, id, message): comment = self.api.comment(id=id, comment=message) self.obj = comment mid = self.getAtt("id") return mid def comment_destroy (self, mid): comment = self.api.comment_destroy(mid) self.obj = comment mid = self.getAtt("id") text = self.getAtt("text") return mid def repost(self, id, message): post = self.api.repost(id=id, status=message) self.obj = post mid = self.getAtt("id") return mid def get_username(self): if getattr(self, '_username', None) is None: self._username = self.auth.get_username() return self._username
  不知道读者是否还记得我们上面授权部分的代码。在login_check方法代码中,有这么一句话。
  request.session['oauth_access_token'] = access_token
  授权用户的 access_token 已存储在 session 变量中。因此,当用户授权完成后,我们可以直接使用 session 中存储的 access_token,如下所示:
  access_token = request.session.get('oauth_access_token', None) if access_token is not None: weibo_client = weibo() weibo_client.setToken(access_token.key, access_token.secret) weibo_client.update('全部完成~')
  上面的例子中只用到了一些 API,完整的 API 手册可以在这里找到。
  文章来源: 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(有时候整合新浪微博的独立博客是怎么做的??)
  随着新浪微博用户数量的增加,我们有时会考虑将新浪微博整合到我们的网站中。比如我现在的独立博客。
  我博客中的整合主要有以下几个方面:我写了一篇文章文章,会同步发到微博。同时,用户可以用自己的微博账号登录,可以选择将文章的评论同步到文章的微博。此外,用户可以选择是否将博客消息同步到新浪微博。
  新浪微博开放平台地址在这里。文档地址在这里。
  首先要涉及的问题是用户用自己的新浪微博账号登录的问题,也就是授权机制。有两种基本方法:
  OAuth Basic auth(需要强调的是,微博开放平台将于6月1日正式停止对Basic Auth的支持,所以这个方法不做讨论,其实需要用户名和密码的方法本身就是不安全的。)
  OAuth新浪官方文档在这里。想了解OAuth技术说明的可以访问项目主页。
  其实OAuth的过程还是很简单的。大致如下:
  调用 API 获取请求令牌。将用户重定向到授权页面(auth url)。用户输入用户名和密码完成授权。重定向到 Callback_url。向新浪微博交换请求令牌以获得访问令牌。结束。
  大致了解了OAuth的原理后,既然我们是集成到Django中,自然需要下载微博SDK的Python版本。
  不过,在这一切开始之前,您必须向新浪微博申请您的应用程序。申请地址在这里。这里需要强调的是,应用以后需要申请审核,因为只有审核通过后,才能在源中显示个性化的应用名称。因此,在申请时,要注意申请介绍信息的完整性和正确的申请分类。(在这个例子中,我们的分类是 Collaboration网站。)
  申请完成后,您将获得您的应用程序的 App Key 和 App Secret。
  回到授权用户登录的主题。要允许新浪微博帐号访问,首先我们需要在 urlpatterns 中添加几个 URL。如下:
  urlpatterns = patterns('projectname.appname.views', url(r'^log/$', 'login', name='log'), url(r'^logincheck/$', 'login_check', name='logcheck'), url(r'^logout/$', 'logout', name='logout'), )
  接下来,我们启动视图文件。代码:
  #!/usr/bin/env python # -*- coding: utf-8 -*- """ 基于django的新浪微博oauth views 需要django的session支持 """ from django.http import HttpResponseRedirect from weibopy.auth import OAuthHandler, WeibopError from weibopy import oauth consumer_key = '' # 设置你申请的appkey consumer_secret = '' # 设置你申请的appkey对于的secret class WebOAuthHandler(OAuthHandler): def get_authorization_url_with_callback(self, callback, signin_with_推ter=False): """Get the authorization URL to redirect the user""" try: # get the request token self.request_token = self._get_request_token() # build auth request and return as url if signin_with_推ter: url = self._get_oauth_url('authenticate') else: url = self._get_oauth_url('authorize') request = oauth.OAuthRequest.from_token_and_callback( token=self.request_token, callback=callback, http_url=url ) return request.to_url() except Exception, e: raise WeibopError(e) def _get_referer_url(request): referer_url = request.META.get('HTTP_REFERER', '/') host = request.META['HTTP_HOST'] if referer_url.startswith('http') and host not in referer_url: referer_url = '/' # 避免外站直接跳到登录页而发生跳转错误 return referer_url def _oauth(): """获取oauth认证类""" return WebOAuthHandler(consumer_key, consumer_secret) def login(request): # 保存最初的登录url,以便认证成功后跳转回来 back_to_url = _get_referer_url(request) request.session['login_back_to_url'] = back_to_url # 获取oauth认证url login_backurl = request.build_absolute_uri('/logincheck') auth_client = _oauth() auth_url = auth_client.get_authorization_url_with_callback(login_backurl) # 保存request_token,用户登录后需要使用它来获取access_token request.session['oauth_request_token'] = auth_client.request_token # 跳转到登录页面 return HttpResponseRedirect(auth_url) def login_check(request): """用户成功登录授权后,会回调此方法,获取access_token,完成授权""" # http://mk2.com/%3Foauth_token% ... 03896 verifier = request.GET.get('oauth_verifier', None) auth_client = _oauth() # 设置之前保存在session的request_token request_token = request.session['oauth_request_token'] del request.session['oauth_request_token'] auth_client.set_request_token(request_token.key, request_token.secret) access_token = auth_client.get_access_token(verifier) # 保存access_token,以后访问只需使用access_token即可 request.session['oauth_access_token'] = access_token # 跳转回最初登录前的页面 back_to_url = request.session.get('login_back_to_url', '/') return HttpResponseRedirect(back_to_url) def logout(request): """用户登出,直接删除access_token""" del request.session['oauth_access_token'] back_to_url = _get_referer_url(request) return HttpResponseRedirect(back_to_url)
  完成授权码之后,我们就需要知道怎么给新浪微博发消息了。其实下载的SDK下的exanples文件夹下的examples(是的,其实就是examples,这个英文水平不能抱怨),修改后直接使用即可。以 oauthSetTokenUpdate.py 为例,我们可以这样写:
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '应用的key' consumer_secret ='应用的App Secret' auth = OAuthHandler(consumer_key, consumer_secret) auth_url = auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() auth.get_access_token(verifier) api = API(auth) status = api.update_status(status='hello world', lat='12.3', long='45.6') # 注意status必须是UTF-8编码的字符串,经纬度是可以不写的 print status.id print status.text
  运行程序会提示一个 URL 链接,在浏览器中打开链接,并授予访问权限,你会得到一串 PIN 码。输入此 PIN 并发送推送,并且还将显示用户的访问令牌密钥和访问令牌密码。
  但是,这样做是不是有点太书呆子了?其实只要知道Access token key和Access token secret,我们就可以直接使用它们来创建API对象:
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '应用的key' consumer_secret ='应用的App Secret' token = '用户的Access token key' tokenSecret = '用户的Access token secret' auth = OAuthHandler(consumer_key, consumer_secret) auth.setToken(token, tokenSecret) api = API(auth) status = api.update_status(status='搞定收工~')
  这时候我们可以重构代码,写一个微博类来实现以上功能,实现一些api操作。
  class weibo(object): def __init__(self): self.consumer_key = consumer_key self.consumer_secret = consumer_secret def getAtt(self, key): try: return self.obj.__getattribute__(key) except Exception, e: print e return '' def getAttValue(self, obj, key): try: return obj.__getattribute__(key) except Exception, e: print e return '' def auth(self): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) auth_url = self.auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() self.auth.get_access_token(verifier) self.api = API(self.auth) def setToken(self, token, tokenSecret): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) self.auth.setToken(token, tokenSecret) self.api = API(self.auth) def update(self, message): message = message.encode("utf-8") status = self.api.update_status(status=message) self.obj = status id = self.getAtt("id") return id def destroy_status(self, id): status = self.api.destroy_status(id) self.obj = status id = self.getAtt("id") return id def comment(self, id, message): comment = self.api.comment(id=id, comment=message) self.obj = comment mid = self.getAtt("id") return mid def comment_destroy (self, mid): comment = self.api.comment_destroy(mid) self.obj = comment mid = self.getAtt("id") text = self.getAtt("text") return mid def repost(self, id, message): post = self.api.repost(id=id, status=message) self.obj = post mid = self.getAtt("id") return mid def get_username(self): if getattr(self, '_username', None) is None: self._username = self.auth.get_username() return self._username
  不知道读者是否还记得我们上面授权部分的代码。在login_check方法代码中,有这么一句话。
  request.session['oauth_access_token'] = access_token
  授权用户的 access_token 已存储在 session 变量中。因此,当用户授权完成后,我们可以直接使用 session 中存储的 access_token,如下所示:
  access_token = request.session.get('oauth_access_token', None) if access_token is not None: weibo_client = weibo() weibo_client.setToken(access_token.key, access_token.secret) weibo_client.update('全部完成~')
  上面的例子中只用到了一些 API,完整的 API 手册可以在这里找到。
  文章来源:

使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步微博内容至自己网站(图))

网站优化优采云 发表了文章 • 0 个评论 • 51 次浏览 • 2022-03-15 04:02 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步微博内容至自己网站(图))
  使用新浪微博开放平台api同步微博内容至自己网站,找你公司的人帮你把内容同步下来。这个可以参考下维基百科上的api功能列表。
  同步推,同步助手之类的工具很多的,搜下就行,好多需要会员。一定要有耐心。
  看上去有四种方式:1,使用现有的中小网站,它们提供了网页同步服务,把链接放在上面就可以,只要导出数据到本地,修改下链接就行了,修改也很简单,比如把"url.php"改成"['.home.con'].[';ns=''&nss='&jsc='&ws='&anchor='&pos=']'",把服务改成:-invalid-content-provider2,在你的网站上,找一个api,把内容发到他们的服务器上。
  -invalid-content-provider3,还有一个就是自己编写程序,把php,html,css等页面对应到你所需要的数据上。-invalid-content-provider4,最简单的方法就是,用互联网公司做的库服务,就和百度库一样。-reference-and-blogging/就是这个。
  我在网上搜到了两个教程
  给自己网站做个版面,另外借一个服务器,这个是最简单的,
  同步推都不知道可以看我另一个回答里面就有教你如何用比较简单的方法发布微博
  1.借助网站,可以是你自己的网站,但是是最好的,比如拥有草根创作平台,用它去做统一管理2.借助第三方平台,比如数据厂商京东我要实现服务器无需安装数据迁移工具3.借助第三方平台,比如微信运营接入最简单, 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步微博内容至自己网站(图))
  使用新浪微博开放平台api同步微博内容至自己网站,找你公司的人帮你把内容同步下来。这个可以参考下维基百科上的api功能列表。
  同步推,同步助手之类的工具很多的,搜下就行,好多需要会员。一定要有耐心。
  看上去有四种方式:1,使用现有的中小网站,它们提供了网页同步服务,把链接放在上面就可以,只要导出数据到本地,修改下链接就行了,修改也很简单,比如把"url.php"改成"['.home.con'].[';ns=''&nss='&jsc='&ws='&anchor='&pos=']'",把服务改成:-invalid-content-provider2,在你的网站上,找一个api,把内容发到他们的服务器上。
  -invalid-content-provider3,还有一个就是自己编写程序,把php,html,css等页面对应到你所需要的数据上。-invalid-content-provider4,最简单的方法就是,用互联网公司做的库服务,就和百度库一样。-reference-and-blogging/就是这个。
  我在网上搜到了两个教程
  给自己网站做个版面,另外借一个服务器,这个是最简单的,
  同步推都不知道可以看我另一个回答里面就有教你如何用比较简单的方法发布微博
  1.借助网站,可以是你自己的网站,但是是最好的,比如拥有草根创作平台,用它去做统一管理2.借助第三方平台,比如数据厂商京东我要实现服务器无需安装数据迁移工具3.借助第三方平台,比如微信运营接入最简单,

使用新浪微博开放平台api同步微博内容至自己网站(新浪微博开放平台做个实践,开发一个功能简单的android客户端)

网站优化优采云 发表了文章 • 0 个评论 • 59 次浏览 • 2022-03-14 08:08 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博开放平台做个实践,开发一个功能简单的android客户端)
  介绍
  最近不太忙,花点时间学习android app开发。经过两周的学习,我在学习的同时也写了很多demo例子,可以从基本控件和基本动画效果的demo合集中放出,不断更新下载。
  从本周开始,我打算以新浪微博开放平台为实践,开发一个功能简单的安卓客户端,尽可能的完善功能。
  今天的内容
  
  上图是这个客户端的主界面。目前只获取前20条数据。您也可以单击刷新来刷新数据。功能比较简单。
  操作系统是android2.2.
  用到的技术点包括ListView、自定义ListAdapter、多线程相关Message、Handler、认证相关OAuth、异步加载用户图片等。
  新浪微博的验证使用signpost的OAuth组件,不使用微博的SDK。
  
  源代码下载:新浪微博2
  源码下载后,改后缀为rar,使用压缩软件解压。
  关于 OAuth 身份验证
  OAuth是目前比较流行的一种授权方案。twitter、facebook、google等大型开放平台均支持oauth认证方式,国内新浪微博、腾讯微博、163微博等开放平台也已支持。这种验证模式。
  来自维基百科的引文
  “oauth 是一种开放标准,允许用户允许第三方应用程序访问用户放置在 网站 上的私有资源,而无需将用户名和密码传递给第三方应用程序。oauth 允许用户提供一个令牌,而不是用户名和密码来访问他们存储在特定服务提供商处的数据。”
  例如:
  用户A在服务提供者B上存储了一些资源。B支持oauth授权方式。A 是 B 上的注册用户,拥有用户名和密码。使用用户名和密码登录B可以查看自己的资源。假设有一个应用程序C,当用户A使用C时,他需要自己存储在B上的资源。有两种方法可以在 C 上实现资源以在 B 上显示自身。
  这时C就可以使用B开启的oauth授权机制,当用户A想在B上展示资源时,C会跳转到B的验证页面,用户在B的页面输入用户名和密码。通过后,会询问用户是否为C应用开发相关资源。用户可以自定义C可以访问的资源,然后跳转回C应用。这样,您就不必担心用户名和密码,也不必同时存储多个资源。
  您可以通过以下网站了解更多关于oauth的具体技术细节。
  
  从上图中我们可以看出,整个流程分为消费者和提供者两部分。消费者是示例中的 C 应用程序,提供者是示例中的 B 服务提供者。
  使用 OAuth 进行认证和授权的流程如下:
  用户访问客户端的网站,想要操作存储在服务提供者中的用户资源。客户端向服务提供者请求一个临时令牌。服务提供者对客户端进行身份验证后,将授予一个临时令牌。客户端获取临时token后,将用户引导至服务提供者的授权页面,请求用户授权。在这个过程中,临时令牌和客户端的回调连接被发送给服务提供者。用户在服务提供商的网页上输入用户名和密码,然后授权客户端访问所请求的资源。授权成功后,服务商引导用户返回客户端的网页。客户端根据临时令牌从服务提供者处获取访问令牌。服务提供者根据临时令牌和用户授权授予客户端访问令牌。客户端使用获得的访问令牌来访问托管在服务提供商上的受保护资源。新浪微博的誓言
  
  借用一张新浪微博oauth验证流程图。
  当我们在新浪微博开放平台上创建一个新的应用程序时,我们会给新的应用程序分配一个key和secret,即consumerKey和consumerSecret。通过这两件事,我们去request_token,然后将用户重定向到新浪微博平台的授权页面。授权后,我们会根据callback_url跳转到我们应用的某个地址。我们再次使用request_token来获取access_token,然后我们需要通过access token来访问需要验证的开放平台提供的接口。
  当然,那些不需要验证就可以访问的接口,可以直接使用key进行访问。具体请参考开放平台提供的API文档。
  腾讯微博和163微博的开放平台在原理和实现上也类似。
  包.com。新浪微博2;导入oauth。路标。OAuth消费者;导入oauth。路标。OAuth提供者;导入oauth。路标。公地http。CommonsHttpOAuthConsumer;导入oauth。路标。公地http。CommonsHttpOAuthProvider;导入oauth。路标。例外。OAuthCommunicationException;导入oauth。路标。例外。OAuthExpectationFailedException; 导入oauth。路标。例外。OAuthMessageSignerException;导入oauth。路标。例外。OAuthNotAuthorizedException;公共类 OAuth { 私有 OAuthConsumer mConsumer; 私有 OAuthProvider mProvider;public static final String CALLBACK_URL = "sinaweibo2://WeiboListActivity"; 公共静态最终字符串 CONSUMER_KEY = "1849239616"; 公共静态最终字符串 CONSUMER_SECRET = "b2137bf782bf6cae004b8a8394d5d5d6";
  吨。新浪。com。cn/oauth/request_token"; public static final String ACCESS_TOKEN_URL = ". 吨。新浪。com。cn/oauth/access_token"; public static final String AUTHORIZE_URL = ". 吨。新浪。com。cn/oauth/authorize"; public OAuth() { } public String RetrieveAuthUrl() throws OAuthMessageSignerException, OAuthNotAuthorizedException, OAuthExpectationFailedException, OAuthCommunicationException { mConsumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); mProvider = new CommonsHttpOAuthProvider(REQUEST_TOKEN_URL, ACCESS_TOKEN_URL, AUTHO提供者。
  检索请求令牌(mConsumer,CALLBACK_URL);返回 authUrl; } public void RetrieveAccessToken(String verifier) 抛出 OAuthMessageSignerException, OAuthNotAuthorizedException, OAuthExpectationFailedException, OAuthCommunicationException { mProvider. setOAuth10a(true); 提供者。检索AccessToken(mConsumer,验证者);OAuth 用户。USER_ID=mProvider。获取响应参数()。getFirst("user_id"); OAuth 用户。ACCESS_TOKEN = mConsumer。获取令牌();OAuth 用户。ACCESS_TOKEN_SECRET = mConsumer。getTokenSecret(); } }
  更多功能
  接下来主要完善两个功能,一是分页浏览,二是发布微博。
  未来可能支持图片发布等实用功能。
  有UI美化,性能优化。
  总结
  在学习的过程中,我看了两本书,Pro.Android.2.pdf和Professional.Android.2.Application.Development.(Wrox,.2010,.0470565527). pdf,都是很不错的入门书,书我没有看完,但是看了大部分,边看边写demo。
  同时,论坛是eoe天天的开发者门户。回答问题、解决问题、提问、发帖,总之就是锻炼自己,强迫自己锻炼基础和思考。
  论坛上有很多中文的pdf教程,但是我发现大部分都是android开发者中心的Dev Guide和Resources中的内容的翻译。所以我觉得,如果英文不是很差,建议直接看上面两节,同时练习里面的例子。保证在两周内,你会取得很大的进步。
  参考
  Technorati 标签:android, 开放平台, oauth, 新浪微博 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博开放平台做个实践,开发一个功能简单的android客户端)
  介绍
  最近不太忙,花点时间学习android app开发。经过两周的学习,我在学习的同时也写了很多demo例子,可以从基本控件和基本动画效果的demo合集中放出,不断更新下载。
  从本周开始,我打算以新浪微博开放平台为实践,开发一个功能简单的安卓客户端,尽可能的完善功能。
  今天的内容
  
  上图是这个客户端的主界面。目前只获取前20条数据。您也可以单击刷新来刷新数据。功能比较简单。
  操作系统是android2.2.
  用到的技术点包括ListView、自定义ListAdapter、多线程相关Message、Handler、认证相关OAuth、异步加载用户图片等。
  新浪微博的验证使用signpost的OAuth组件,不使用微博的SDK。
  
  源代码下载:新浪微博2
  源码下载后,改后缀为rar,使用压缩软件解压。
  关于 OAuth 身份验证
  OAuth是目前比较流行的一种授权方案。twitter、facebook、google等大型开放平台均支持oauth认证方式,国内新浪微博、腾讯微博、163微博等开放平台也已支持。这种验证模式。
  来自维基百科的引文
  “oauth 是一种开放标准,允许用户允许第三方应用程序访问用户放置在 网站 上的私有资源,而无需将用户名和密码传递给第三方应用程序。oauth 允许用户提供一个令牌,而不是用户名和密码来访问他们存储在特定服务提供商处的数据。”
  例如:
  用户A在服务提供者B上存储了一些资源。B支持oauth授权方式。A 是 B 上的注册用户,拥有用户名和密码。使用用户名和密码登录B可以查看自己的资源。假设有一个应用程序C,当用户A使用C时,他需要自己存储在B上的资源。有两种方法可以在 C 上实现资源以在 B 上显示自身。
  这时C就可以使用B开启的oauth授权机制,当用户A想在B上展示资源时,C会跳转到B的验证页面,用户在B的页面输入用户名和密码。通过后,会询问用户是否为C应用开发相关资源。用户可以自定义C可以访问的资源,然后跳转回C应用。这样,您就不必担心用户名和密码,也不必同时存储多个资源。
  您可以通过以下网站了解更多关于oauth的具体技术细节。
  
  从上图中我们可以看出,整个流程分为消费者和提供者两部分。消费者是示例中的 C 应用程序,提供者是示例中的 B 服务提供者。
  使用 OAuth 进行认证和授权的流程如下:
  用户访问客户端的网站,想要操作存储在服务提供者中的用户资源。客户端向服务提供者请求一个临时令牌。服务提供者对客户端进行身份验证后,将授予一个临时令牌。客户端获取临时token后,将用户引导至服务提供者的授权页面,请求用户授权。在这个过程中,临时令牌和客户端的回调连接被发送给服务提供者。用户在服务提供商的网页上输入用户名和密码,然后授权客户端访问所请求的资源。授权成功后,服务商引导用户返回客户端的网页。客户端根据临时令牌从服务提供者处获取访问令牌。服务提供者根据临时令牌和用户授权授予客户端访问令牌。客户端使用获得的访问令牌来访问托管在服务提供商上的受保护资源。新浪微博的誓言
  
  借用一张新浪微博oauth验证流程图。
  当我们在新浪微博开放平台上创建一个新的应用程序时,我们会给新的应用程序分配一个key和secret,即consumerKey和consumerSecret。通过这两件事,我们去request_token,然后将用户重定向到新浪微博平台的授权页面。授权后,我们会根据callback_url跳转到我们应用的某个地址。我们再次使用request_token来获取access_token,然后我们需要通过access token来访问需要验证的开放平台提供的接口。
  当然,那些不需要验证就可以访问的接口,可以直接使用key进行访问。具体请参考开放平台提供的API文档。
  腾讯微博和163微博的开放平台在原理和实现上也类似。
  包.com。新浪微博2;导入oauth。路标。OAuth消费者;导入oauth。路标。OAuth提供者;导入oauth。路标。公地http。CommonsHttpOAuthConsumer;导入oauth。路标。公地http。CommonsHttpOAuthProvider;导入oauth。路标。例外。OAuthCommunicationException;导入oauth。路标。例外。OAuthExpectationFailedException; 导入oauth。路标。例外。OAuthMessageSignerException;导入oauth。路标。例外。OAuthNotAuthorizedException;公共类 OAuth { 私有 OAuthConsumer mConsumer; 私有 OAuthProvider mProvider;public static final String CALLBACK_URL = "sinaweibo2://WeiboListActivity"; 公共静态最终字符串 CONSUMER_KEY = "1849239616"; 公共静态最终字符串 CONSUMER_SECRET = "b2137bf782bf6cae004b8a8394d5d5d6";
  吨。新浪。com。cn/oauth/request_token"; public static final String ACCESS_TOKEN_URL = ". 吨。新浪。com。cn/oauth/access_token"; public static final String AUTHORIZE_URL = ". 吨。新浪。com。cn/oauth/authorize"; public OAuth() { } public String RetrieveAuthUrl() throws OAuthMessageSignerException, OAuthNotAuthorizedException, OAuthExpectationFailedException, OAuthCommunicationException { mConsumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); mProvider = new CommonsHttpOAuthProvider(REQUEST_TOKEN_URL, ACCESS_TOKEN_URL, AUTHO提供者。
  检索请求令牌(mConsumer,CALLBACK_URL);返回 authUrl; } public void RetrieveAccessToken(String verifier) 抛出 OAuthMessageSignerException, OAuthNotAuthorizedException, OAuthExpectationFailedException, OAuthCommunicationException { mProvider. setOAuth10a(true); 提供者。检索AccessToken(mConsumer,验证者);OAuth 用户。USER_ID=mProvider。获取响应参数()。getFirst("user_id"); OAuth 用户。ACCESS_TOKEN = mConsumer。获取令牌();OAuth 用户。ACCESS_TOKEN_SECRET = mConsumer。getTokenSecret(); } }
  更多功能
  接下来主要完善两个功能,一是分页浏览,二是发布微博。
  未来可能支持图片发布等实用功能。
  有UI美化,性能优化。
  总结
  在学习的过程中,我看了两本书,Pro.Android.2.pdf和Professional.Android.2.Application.Development.(Wrox,.2010,.0470565527). pdf,都是很不错的入门书,书我没有看完,但是看了大部分,边看边写demo。
  同时,论坛是eoe天天的开发者门户。回答问题、解决问题、提问、发帖,总之就是锻炼自己,强迫自己锻炼基础和思考。
  论坛上有很多中文的pdf教程,但是我发现大部分都是android开发者中心的Dev Guide和Resources中的内容的翻译。所以我觉得,如果英文不是很差,建议直接看上面两节,同时练习里面的例子。保证在两周内,你会取得很大的进步。
  参考
  Technorati 标签:android, 开放平台, oauth, 新浪微博

使用新浪微博开放平台api同步微博内容至自己网站(PHP+新浪云平台(SAE)——新浪微博应用开发的一个解决方案)

网站优化优采云 发表了文章 • 0 个评论 • 57 次浏览 • 2022-03-12 10:13 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(PHP+新浪云平台(SAE)——新浪微博应用开发的一个解决方案)
  PHP+新浪微博开放平台+新浪云平台(SAE)
  ——新浪微博应用开发解决方案
  一、PHP+新浪微博开放平台+新浪云平台(SAE)解决方案
  二、微博应用搭建过程
  三、PHP SDK中的Demo程序简析
  四、进一步的学习和有用的资源
  五、几个必须解决的问题
  【PDF全文下载】
  PHP+新浪微博开放平台+新浪云平台(SAE)解决方案基础
  1、新浪微博开放平台()
  什么是开放的:开放平台向开发者开放的是每个用户的用户关系。开发者不再像传统应用那样面向单个开发者,而是面向用户背后的整个朋友圈。每个API都围绕好友之间的交流提供相关功能,比如发微博、查看好友信息等。
  为什么要使用开放平台?开放的平台可以加快应用推广。每个用户都可以影响周围的朋友。一旦应用真的很好,用户可以很容易地推荐给朋友,朋友也可以推荐给他的朋友。开放平台使用户关系更容易获得。当应用涉及到用户交流时,需要同时拥有一定的用户群和用户的关系链,与如此大量的用户建立关系链需要花费大量的时间和精力。通过草根与草根、草根与明星、明星与明星之间的相互关注,微博形成了一个庞大的社交网络,应用程序可以通过开放平台直接使用这个网络。
  2、新浪云平台(新浪AppEngine,SAE)
  新浪App Engine(以下简称SAE)是国内首个公有云计算平台(新浪研发中心于2009年8月开始内部开发,2009年11月3日正式推出首个Alpha版本)。SAE是新浪云计算战略的核心组成部分。
  SAE作为国内公有云计算,从发展之初就吸取了国外公司如谷歌、亚马逊等公有云计算的成功技术经验,很快推出了一个有自己特色、有别于他们的云计算平台。SAE选择中国最流行的Web开发语言PHP作为首选支持语言。Web 开发者可以通过 SVN、SDK 或基于 Web 的在线代码编辑器在 Linux/Mac/Windows 上进行开发、部署和调试。成员协作也是可以的,不同角色对代码和项目的权限也会不同;SAE提供一系列分布式计算和存储服务供开发者使用,包括分布式文件存储、分布式数据库集群、分布式缓存、分布式定时服务等,这些服务将大大降低开发者的开发成本。同时,由于SAE整体架构的高可靠性和新浪的品牌保障,大大降低了开发者的运营风险。此外,SAE作为典型的云计算,采用“所付即用,所付即用”的计费理念,精准计算资源消耗(包括CPU、内存、磁盘等) .) 通过日志和统计中心的每个应用程序。
  总之,SAE是一个简单高效的分布式Web服务开发和运营平台。
  查看更多。
  3、新浪云平台(Sina AppEngine,SAE)与新浪微博开放平台的关系
  微博应用开发成功后,需要将代码部署到Web上才能使用。也就是说,微博应用开发是通过调用新浪微博开放平台中的API来完成的,这些程序上传到SAE并在SAE上运行。
  在开发过程中,可以搭建一个web服务器在本地运行程序,也可以选择传统的服务托管来完成。但是,这两种方案都需要很多麻烦的配置。
  开发时直接将代码部署到SAE不需要任何配置,而且SAE已经为你准备了更多未来可能用到的服务,我们可以直奔主题——开发微博应用。
  SAE 是免费的(至少作为个人学习的资源)也很重要。 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(PHP+新浪云平台(SAE)——新浪微博应用开发的一个解决方案)
  PHP+新浪微博开放平台+新浪云平台(SAE)
  ——新浪微博应用开发解决方案
  一、PHP+新浪微博开放平台+新浪云平台(SAE)解决方案
  二、微博应用搭建过程
  三、PHP SDK中的Demo程序简析
  四、进一步的学习和有用的资源
  五、几个必须解决的问题
  【PDF全文下载】
  PHP+新浪微博开放平台+新浪云平台(SAE)解决方案基础
  1、新浪微博开放平台()
  什么是开放的:开放平台向开发者开放的是每个用户的用户关系。开发者不再像传统应用那样面向单个开发者,而是面向用户背后的整个朋友圈。每个API都围绕好友之间的交流提供相关功能,比如发微博、查看好友信息等。
  为什么要使用开放平台?开放的平台可以加快应用推广。每个用户都可以影响周围的朋友。一旦应用真的很好,用户可以很容易地推荐给朋友,朋友也可以推荐给他的朋友。开放平台使用户关系更容易获得。当应用涉及到用户交流时,需要同时拥有一定的用户群和用户的关系链,与如此大量的用户建立关系链需要花费大量的时间和精力。通过草根与草根、草根与明星、明星与明星之间的相互关注,微博形成了一个庞大的社交网络,应用程序可以通过开放平台直接使用这个网络。
  2、新浪云平台(新浪AppEngine,SAE)
  新浪App Engine(以下简称SAE)是国内首个公有云计算平台(新浪研发中心于2009年8月开始内部开发,2009年11月3日正式推出首个Alpha版本)。SAE是新浪云计算战略的核心组成部分。
  SAE作为国内公有云计算,从发展之初就吸取了国外公司如谷歌、亚马逊等公有云计算的成功技术经验,很快推出了一个有自己特色、有别于他们的云计算平台。SAE选择中国最流行的Web开发语言PHP作为首选支持语言。Web 开发者可以通过 SVN、SDK 或基于 Web 的在线代码编辑器在 Linux/Mac/Windows 上进行开发、部署和调试。成员协作也是可以的,不同角色对代码和项目的权限也会不同;SAE提供一系列分布式计算和存储服务供开发者使用,包括分布式文件存储、分布式数据库集群、分布式缓存、分布式定时服务等,这些服务将大大降低开发者的开发成本。同时,由于SAE整体架构的高可靠性和新浪的品牌保障,大大降低了开发者的运营风险。此外,SAE作为典型的云计算,采用“所付即用,所付即用”的计费理念,精准计算资源消耗(包括CPU、内存、磁盘等) .) 通过日志和统计中心的每个应用程序。
  总之,SAE是一个简单高效的分布式Web服务开发和运营平台。
  查看更多。
  3、新浪云平台(Sina AppEngine,SAE)与新浪微博开放平台的关系
  微博应用开发成功后,需要将代码部署到Web上才能使用。也就是说,微博应用开发是通过调用新浪微博开放平台中的API来完成的,这些程序上传到SAE并在SAE上运行。
  在开发过程中,可以搭建一个web服务器在本地运行程序,也可以选择传统的服务托管来完成。但是,这两种方案都需要很多麻烦的配置。
  开发时直接将代码部署到SAE不需要任何配置,而且SAE已经为你准备了更多未来可能用到的服务,我们可以直奔主题——开发微博应用。
  SAE 是免费的(至少作为个人学习的资源)也很重要。

使用新浪微博开放平台api同步微博内容至自己网站(博主创建博客初期一直在用多说社会化评论插件(组图))

网站优化优采云 发表了文章 • 0 个评论 • 53 次浏览 • 2022-03-12 04:12 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(博主创建博客初期一直在用多说社会化评论插件(组图))
  在创建博客的早期,博主一直在使用多数社交评论插件。一是因为多硕跨博客回复提醒功能,二是同步文章到社交平台;也就是本文将要实现的内容。功能。前两张图
  
  
  
  
  不难看出两张图的区别:除了内容不同,还有来自XXX,也就是红框标出的位置;图2是在同步前使用多说插件的效果,图1是实现本博客功能的效果。
  目的(功能)
  第一:减少博客的访问量 网站
  第二:提高质量,突出我们博客的崇高气质;正因为如此,我们必须自己实现这些功能,而不使用插件。
  创意申请权限,创建应用申请开发者权限
  使用您的新浪微博账号登录微博开放平台:
  点击页面导航中的【编辑开发者信息】或访问:,根据页面表单内容填写信息,提交后等待新浪审核。(下图为基本流程)
  
  
  新浪评论一般需要1个左右的工作。批准后可以创建应用程序
  创建应用
  点击【我的应用】-&gt;创建应用或访问:创建应用,根据表单内容一步步填写表单,注意:第一步中的应用名称为图1和图2中的来源名称.
  填写申请信息后,提交审核。这里的审稿时间会长一些,忘了多长时间了。
  在此期间,您可以使用新浪开放的端口进行开发,但在未通过审批之前,源位置会显示“未通过申请​​”字样,但不影响开发和使用;新浪微博有很多接口供开发者调用,感兴趣的朋友可以仔细研究下,但本文主要介绍“2/statuses/update”接口(开发文档:)。
  编写代码
  根据开发文档()中的介绍,我们可以知道:
  接口网址:
  数据格式:JSON
  请求方式:POST
  请求参数:status(微博内容)、source(AppKey,从我在开发者中心的应用中获取;图3)
  是否登录:是
  
  
  根据以上信息,我们编写代码如下:
  **
* WordPress 同步文章到新浪微博 By 无主题博客
* 原文地址: https://wuzhuti.cn/1771.html
*/
function post_to_sina_weibo($post_ID) {
if (wp_is_post_revision($post_ID)) return;//修订版本(更新)不发微博
$get_post_info = get_post($post_ID);
$get_post_centent = get_post($post_ID)->post_content;
$get_post_title = get_post($post_ID)->post_title;
if ($get_post_info->post_status == &#039;publish&#039; && $_POST[&#039;original_post_status&#039;] != &#039;publish&#039;) {
$appkey=&#039;3838258703&#039;;
$username=&#039;微博用户名&#039;;
$userpassword=&#039;微博密码&#039;;
$request = new WP_Http;
$status = &#039;【&#039; . strip_tags($get_post_title) . &#039;】 &#039; . mb_strimwidth(strip_tags(apply_filters(&#039;the_content&#039;, $get_post_centent)) , 0, 132, &#039;...&#039;) . &#039; 全文地址:&#039; . get_permalink($post_ID);
$api_url = &#039;https://api.weibo.com/2/status ... 3B%3B
$body = array(&#039;status&#039; => $status,&#039;source&#039; => $appkey);
$headers = array(&#039;Authorization&#039; => &#039;Basic &#039; . base64_encode("$username:$userpassword"));
$result = $request->post($api_url, array(&#039;body&#039; => $body,&#039;headers&#039; => $headers));
}
}
add_action(&#039;publish_post&#039;, &#039;post_to_sina_weibo&#039;, 0);//给发布文章增加一个分享微博的动作
  小伙伴们,提升自己的风格,突出网站的高大气质,赶紧行动起来吧。
  最新更新 2015-01-29
  有朋友说,微博流量很难引流。今天我们来看一个具体的例子。
  当我看到一个新帖子 文章 有一个陌生人的评论时,我很好奇,这个陌生人的来历是什么?带着好奇,我看了看站长的统计数据。奶奶的,我吓了一跳,来源是百度。不会吧,百度收录就写了2个小时?
  
  
  
  
  
  
  就是这样来的,也是同步到新浪微博的结果。
  最新更新 2015-01-31
  有几个小伙伴发不了微博,同时也不知道怎么测试问题。测试方法有很多,比如打印log日志,开启wp调试等等,我给大家介绍一种。我更常用的是方法。这不是唯一的测试方法,它可能不适用于您。是我认为比较适合本文介绍的代码调试的一种方法。仅供参考,不做研究。
  在网站根目录下新建一个php文件,比如weibo.php,因为这段代码需要调用wordpress的一些函数,所以在第一行我们需要引入wordpress的主文件:
  要求(目录名(文件)。'/wp-blog-header.php');
  引入这个文件后,我们就可以在weibo.php中随意调用wordpress中的函数了。
  然后将本文函数内容复制到weibo.php,写一个有效的post_id,去掉第一行的revision判断代码,在函数末尾输出微博接口的返回值,根据问题查找返回值的内容。 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(博主创建博客初期一直在用多说社会化评论插件(组图))
  在创建博客的早期,博主一直在使用多数社交评论插件。一是因为多硕跨博客回复提醒功能,二是同步文章到社交平台;也就是本文将要实现的内容。功能。前两张图
  
  
  
  
  不难看出两张图的区别:除了内容不同,还有来自XXX,也就是红框标出的位置;图2是在同步前使用多说插件的效果,图1是实现本博客功能的效果。
  目的(功能)
  第一:减少博客的访问量 网站
  第二:提高质量,突出我们博客的崇高气质;正因为如此,我们必须自己实现这些功能,而不使用插件。
  创意申请权限,创建应用申请开发者权限
  使用您的新浪微博账号登录微博开放平台:
  点击页面导航中的【编辑开发者信息】或访问:,根据页面表单内容填写信息,提交后等待新浪审核。(下图为基本流程)
  
  
  新浪评论一般需要1个左右的工作。批准后可以创建应用程序
  创建应用
  点击【我的应用】-&gt;创建应用或访问:创建应用,根据表单内容一步步填写表单,注意:第一步中的应用名称为图1和图2中的来源名称.
  填写申请信息后,提交审核。这里的审稿时间会长一些,忘了多长时间了。
  在此期间,您可以使用新浪开放的端口进行开发,但在未通过审批之前,源位置会显示“未通过申请​​”字样,但不影响开发和使用;新浪微博有很多接口供开发者调用,感兴趣的朋友可以仔细研究下,但本文主要介绍“2/statuses/update”接口(开发文档:)。
  编写代码
  根据开发文档()中的介绍,我们可以知道:
  接口网址:
  数据格式:JSON
  请求方式:POST
  请求参数:status(微博内容)、source(AppKey,从我在开发者中心的应用中获取;图3)
  是否登录:是
  
  
  根据以上信息,我们编写代码如下:
  **
* WordPress 同步文章到新浪微博 By 无主题博客
* 原文地址: https://wuzhuti.cn/1771.html
*/
function post_to_sina_weibo($post_ID) {
if (wp_is_post_revision($post_ID)) return;//修订版本(更新)不发微博
$get_post_info = get_post($post_ID);
$get_post_centent = get_post($post_ID)->post_content;
$get_post_title = get_post($post_ID)->post_title;
if ($get_post_info->post_status == &#039;publish&#039; && $_POST[&#039;original_post_status&#039;] != &#039;publish&#039;) {
$appkey=&#039;3838258703&#039;;
$username=&#039;微博用户名&#039;;
$userpassword=&#039;微博密码&#039;;
$request = new WP_Http;
$status = &#039;【&#039; . strip_tags($get_post_title) . &#039;】 &#039; . mb_strimwidth(strip_tags(apply_filters(&#039;the_content&#039;, $get_post_centent)) , 0, 132, &#039;...&#039;) . &#039; 全文地址:&#039; . get_permalink($post_ID);
$api_url = &#039;https://api.weibo.com/2/status ... 3B%3B
$body = array(&#039;status&#039; => $status,&#039;source&#039; => $appkey);
$headers = array(&#039;Authorization&#039; => &#039;Basic &#039; . base64_encode("$username:$userpassword"));
$result = $request->post($api_url, array(&#039;body&#039; => $body,&#039;headers&#039; => $headers));
}
}
add_action(&#039;publish_post&#039;, &#039;post_to_sina_weibo&#039;, 0);//给发布文章增加一个分享微博的动作
  小伙伴们,提升自己的风格,突出网站的高大气质,赶紧行动起来吧。
  最新更新 2015-01-29
  有朋友说,微博流量很难引流。今天我们来看一个具体的例子。
  当我看到一个新帖子 文章 有一个陌生人的评论时,我很好奇,这个陌生人的来历是什么?带着好奇,我看了看站长的统计数据。奶奶的,我吓了一跳,来源是百度。不会吧,百度收录就写了2个小时?
  
  
  
  
  
  
  就是这样来的,也是同步到新浪微博的结果。
  最新更新 2015-01-31
  有几个小伙伴发不了微博,同时也不知道怎么测试问题。测试方法有很多,比如打印log日志,开启wp调试等等,我给大家介绍一种。我更常用的是方法。这不是唯一的测试方法,它可能不适用于您。是我认为比较适合本文介绍的代码调试的一种方法。仅供参考,不做研究。
  在网站根目录下新建一个php文件,比如weibo.php,因为这段代码需要调用wordpress的一些函数,所以在第一行我们需要引入wordpress的主文件:
  要求(目录名(文件)。'/wp-blog-header.php');
  引入这个文件后,我们就可以在weibo.php中随意调用wordpress中的函数了。
  然后将本文函数内容复制到weibo.php,写一个有效的post_id,去掉第一行的revision判断代码,在函数末尾输出微博接口的返回值,根据问题查找返回值的内容。

使用新浪微博开放平台api同步微博内容至自己网站(新浪微博API开发了一个应用,如何让用户高效获取他想要的信息?)

网站优化优采云 发表了文章 • 0 个评论 • 68 次浏览 • 2022-03-12 04:10 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博API开发了一个应用,如何让用户高效获取他想要的信息?)
  最近用新浪微博的API开发了一个应用,所以从技术的角度讲一下开发过程中的一些收获,以及对微博开放平台的一些看法。
  你开发了什么应用程序
  很多人又爱又恨微博,因为微博上很多博主的内容都很好,但是觉得长时间使用微博是在浪费时间,因为大部分信息都是无用的。
  那么如何让用户高效地获取他们想要的信息(比如特定用户的微博)?我开发了这个应用程序来解决这个问题。
  通过使用该应用,用户可以选择想要关注的微博用户,该应用每天早上都会发送一封邮件,邮件内容为相关微博用户昨天发布的微博。
  有了这个应用程序,你想关注的信息就不会错过,让你在特定的时间学习这些微博的知识。
  技术栈
  这个应用程序的实现实际上非常简单。当用户通过应用关注m个微博用户时,系统会自动使用特定系统用户的账号关注m个微博用户,使得该特定系统用户的微博时间流与m个用户的微博信息(调用新浪微博API获取),经过相关处理后,将m个用户的微博信息通过电子邮件发送给用户。
  在开发这个应用程序的时候,我尽量不做轮子,写了很多类库,并且完全使用了一些第三方库,从而专注于逻辑代码的编写。使用的库包括:
  使用新浪微博 API 的一些好处
  使用新浪微博API其实很简单,只要你是开发者,当然要有域名和虚拟主机。与微信公众平台相比,成为开发者的门槛要低得多。
  新浪微博API是一个数据API。无论从数据的性质还是从安全的角度来看,都有很多限制,所以普通用户如果要使用新浪微博API,会很“受伤”。这里有一些例子:
  对新浪开放平台的一些看法。
  首先,我个人觉得新浪开放平台上的文件非常混乱,人们搞不清它们之间的关系,所以我会用自己的方式表达自己的看法。
  开放平台
  一个开放的平台是一个生态系统,依托平台,开发者和平台所有者可以做一些事情,而这些事情在理论上对双方都是有利的。
  开放平台在技术体系上由两部分组成。第一部分是 API。微博的API就是数据(资源),是新浪的核心资产(API就是公司)。第二部分是SDK。SDK 是供开发人员使用 API 的框架。
  从使用平台看,SDK包括:语言SDK(PHP SDK、Python SDK)、移动客户端SDK、JavaScript SDK(可以理解为浏览器)、组件。
  除了组件SDK,其他SDK都需要具备一定的编程能力,大部分人都会使用组件(复制一段代码运行)。
  另外,新浪微博还有一些业务平台,比如轻应用(希望开发者可以做一些参考,放在微博轻应用中),想法很好,但已经名存实亡。
  微博数据基于“个人”
  所谓“个人”,是指公司也被视为“个人”。你为什么这么说?公司的微博和用户的微博在业绩(发微博)上没有本质的区别,所以演变成了企业微博这个概念被弱化了。所有数据均基于“个人”,但按类型区分(普通用户、蓝V、专业企业用户)。
  个人认为,这种理解是一种简化的理解方式。原来我的一位领导负责微博的企业版。所谓企业版微博,是要求普通用户的微博账号和企业版微博账号必须联动,但仔细想想,这不就是一个内部系统吗?发展了,至于为什么不发展,我目前还没有能力去分析。我个人的感觉是用户关注你微博发的信息,不需要什么花哨的东西,比如在企业微博上卖东西(从技术角度来说很难实现,不如找一个程序员专注于它)为自己的业务发展)。
  其实这对微博来说也是非常好的,专注于数据的输出,简化微博API体系,不要让它变得过于复杂庞大。
  根据“个人”的类型,微博API对应的权限也会有所区别。例如,Blue V 用户开发者已经扩展了很多 API(如群消息接口等)。
  微博API分类
  个人对微博API的理解分为两种:
  对于基础数据API,其实已经没有什么发展空间了。一方面是API限制太多(原因很简单,微博不想让一个使用量大的客户端跟官方客户端竞争?)。
  大多数开发者在非常简单的场景中使用基础数据API,比如在公司官网上添加“微博登录框”、“添加关注按钮”等。
  我认为可以大力开发增值API。比如粉丝服务API有点类似于微信公众平台(可以和用户交互),让开发者可以向用户推送消息(比如向付费用户推送);而商业数据API则是与一些营销公司共享微博的核心资源(数据)。例如,一些公司想要进行一些研究,可以使用业务数据 API 来做出决策。
  增值API可以直接给微博公司带来收益,这也可能是大数据的商业化,虽然我个人很讨厌“大数据”这个词。
  微博开放平台为何无法运行?
  与微信公众平台相比,微信基本上是每个人都必须安装的APP,但微博客户端并不是必须安装的APP。对此,微博需要认真反思,微博客户端太重了(天上还有广告,我喜欢用手机H5版)。因为微博没有客户端这个强大的载体,也影响了平台的发展。
  另外,微信生态是手机客户端,微博生态太多,手机、电脑等各种平台,个人觉得策略会太分散,导致没有重点。想想如果微博没有网页版会怎样?
  人们为什么喜欢使用公共平台进行开发:
  那么微博开放平台为什么不做呢?个人认为,原因一定是多方面的。每个人都有自己的看法。分析时不要退缩。每个系统都在进化。提高自己的能力。
  综上所述,如果你想用微博API做一个应用(并且严重依赖它),我个人觉得你应该放弃这个意愿。
  最后,欢迎大家使用我的应用程序。使用地址。如果更多人使用它,它将继续优化。 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博API开发了一个应用,如何让用户高效获取他想要的信息?)
  最近用新浪微博的API开发了一个应用,所以从技术的角度讲一下开发过程中的一些收获,以及对微博开放平台的一些看法。
  你开发了什么应用程序
  很多人又爱又恨微博,因为微博上很多博主的内容都很好,但是觉得长时间使用微博是在浪费时间,因为大部分信息都是无用的。
  那么如何让用户高效地获取他们想要的信息(比如特定用户的微博)?我开发了这个应用程序来解决这个问题。
  通过使用该应用,用户可以选择想要关注的微博用户,该应用每天早上都会发送一封邮件,邮件内容为相关微博用户昨天发布的微博。
  有了这个应用程序,你想关注的信息就不会错过,让你在特定的时间学习这些微博的知识。
  技术栈
  这个应用程序的实现实际上非常简单。当用户通过应用关注m个微博用户时,系统会自动使用特定系统用户的账号关注m个微博用户,使得该特定系统用户的微博时间流与m个用户的微博信息(调用新浪微博API获取),经过相关处理后,将m个用户的微博信息通过电子邮件发送给用户。
  在开发这个应用程序的时候,我尽量不做轮子,写了很多类库,并且完全使用了一些第三方库,从而专注于逻辑代码的编写。使用的库包括:
  使用新浪微博 API 的一些好处
  使用新浪微博API其实很简单,只要你是开发者,当然要有域名和虚拟主机。与微信公众平台相比,成为开发者的门槛要低得多。
  新浪微博API是一个数据API。无论从数据的性质还是从安全的角度来看,都有很多限制,所以普通用户如果要使用新浪微博API,会很“受伤”。这里有一些例子:
  对新浪开放平台的一些看法。
  首先,我个人觉得新浪开放平台上的文件非常混乱,人们搞不清它们之间的关系,所以我会用自己的方式表达自己的看法。
  开放平台
  一个开放的平台是一个生态系统,依托平台,开发者和平台所有者可以做一些事情,而这些事情在理论上对双方都是有利的。
  开放平台在技术体系上由两部分组成。第一部分是 API。微博的API就是数据(资源),是新浪的核心资产(API就是公司)。第二部分是SDK。SDK 是供开发人员使用 API 的框架。
  从使用平台看,SDK包括:语言SDK(PHP SDK、Python SDK)、移动客户端SDK、JavaScript SDK(可以理解为浏览器)、组件。
  除了组件SDK,其他SDK都需要具备一定的编程能力,大部分人都会使用组件(复制一段代码运行)。
  另外,新浪微博还有一些业务平台,比如轻应用(希望开发者可以做一些参考,放在微博轻应用中),想法很好,但已经名存实亡。
  微博数据基于“个人”
  所谓“个人”,是指公司也被视为“个人”。你为什么这么说?公司的微博和用户的微博在业绩(发微博)上没有本质的区别,所以演变成了企业微博这个概念被弱化了。所有数据均基于“个人”,但按类型区分(普通用户、蓝V、专业企业用户)。
  个人认为,这种理解是一种简化的理解方式。原来我的一位领导负责微博的企业版。所谓企业版微博,是要求普通用户的微博账号和企业版微博账号必须联动,但仔细想想,这不就是一个内部系统吗?发展了,至于为什么不发展,我目前还没有能力去分析。我个人的感觉是用户关注你微博发的信息,不需要什么花哨的东西,比如在企业微博上卖东西(从技术角度来说很难实现,不如找一个程序员专注于它)为自己的业务发展)。
  其实这对微博来说也是非常好的,专注于数据的输出,简化微博API体系,不要让它变得过于复杂庞大。
  根据“个人”的类型,微博API对应的权限也会有所区别。例如,Blue V 用户开发者已经扩展了很多 API(如群消息接口等)。
  微博API分类
  个人对微博API的理解分为两种:
  对于基础数据API,其实已经没有什么发展空间了。一方面是API限制太多(原因很简单,微博不想让一个使用量大的客户端跟官方客户端竞争?)。
  大多数开发者在非常简单的场景中使用基础数据API,比如在公司官网上添加“微博登录框”、“添加关注按钮”等。
  我认为可以大力开发增值API。比如粉丝服务API有点类似于微信公众平台(可以和用户交互),让开发者可以向用户推送消息(比如向付费用户推送);而商业数据API则是与一些营销公司共享微博的核心资源(数据)。例如,一些公司想要进行一些研究,可以使用业务数据 API 来做出决策。
  增值API可以直接给微博公司带来收益,这也可能是大数据的商业化,虽然我个人很讨厌“大数据”这个词。
  微博开放平台为何无法运行?
  与微信公众平台相比,微信基本上是每个人都必须安装的APP,但微博客户端并不是必须安装的APP。对此,微博需要认真反思,微博客户端太重了(天上还有广告,我喜欢用手机H5版)。因为微博没有客户端这个强大的载体,也影响了平台的发展。
  另外,微信生态是手机客户端,微博生态太多,手机、电脑等各种平台,个人觉得策略会太分散,导致没有重点。想想如果微博没有网页版会怎样?
  人们为什么喜欢使用公共平台进行开发:
  那么微博开放平台为什么不做呢?个人认为,原因一定是多方面的。每个人都有自己的看法。分析时不要退缩。每个系统都在进化。提高自己的能力。
  综上所述,如果你想用微博API做一个应用(并且严重依赖它),我个人觉得你应该放弃这个意愿。
  最后,欢迎大家使用我的应用程序。使用地址。如果更多人使用它,它将继续优化。

使用新浪微博开放平台api同步微博内容至自己网站( 修改一下才能用,和之前修改百度sitemap插件原理一致)

网站优化优采云 发表了文章 • 0 个评论 • 53 次浏览 • 2022-03-12 04:09 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(
修改一下才能用,和之前修改百度sitemap插件原理一致)
  function post_to_sina_weibo($post_ID) {
   if (wp_is_post_revision($post_ID)) return;  //修订版本(更新)不发微博
   $get_post_info = get_post($post_ID);
   $get_post_centent = get_post($post_ID)->post_content;
   $get_post_title = get_post($post_ID)->post_title;
   if ($get_post_info->post_status == &#x27;publish&#x27; && $_POST[&#x27;original_post_status&#x27;] != &#x27;publish&#x27;) {
     $appkey=&#x27;3838258703&#x27;;
     $username=&#x27;微博用户名&#x27;;
     $userpassword=&#x27;微博密码&#x27;;
     $request = new WP_Http;
     $status = &#x27;【&#x27; . strip_tags($get_post_title) . &#x27;】 &#x27; . mb_strimwidth(strip_tags(apply_filters(&#x27;the_content&#x27;, $get_post_centent)) , 0, 132, &#x27;...&#x27;) . &#x27; 全文地址:&#x27; . get_permalink($post_ID);
     $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B
     $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey);
     $headers = array(&#x27;Authorization&#x27; => &#x27;Basic &#x27; . base64_encode("$username:$userpassword"));
     $result = $request->post($api_url, array(&#x27;body&#x27; => $body,&#x27;headers&#x27; => $headers));
   }
}
add_action(&#x27;publish_post&#x27;, &#x27;post_to_sina_weibo&#x27;, 0);//给发布文章增加一个分享微博的动作
  同步后是这样的效果:
  由于我的博客已经关闭了修改版,所以必须修改后才能使用,这和之前修改百度站点地图插件的原则是一致的(请注意第2~3行):
  function post_to_sina_weibo($post_ID) {
   /* 鉴于很多朋友反馈发布文章空白,临时加上调试代码,若无问题可删除此行,若有问题请将错误信息在本文留言即可 */
   ini_set(&#x27;display_errors&#x27;, true);
 
   /* 此处修改为通过文章自定义栏目来判断是否同步 */
   if(get_post_meta($post_ID,&#x27;weibo_sync&#x27;,true) == 1) return;
 
   $get_post_info = get_post($post_ID);
   $get_post_centent = get_post($post_ID)->post_content;
   $get_post_title = get_post($post_ID)->post_title;
   if ($get_post_info->post_status == &#x27;publish&#x27; && $_POST[&#x27;original_post_status&#x27;] != &#x27;publish&#x27;) {
     $appkey=&#x27;1034947262&#x27;;  /* 此处是你的新浪微博appkey,不修改的话就会显示来自张戈博客哦! */
     $username=&#x27;微博用户名&#x27;;
     $userpassword=&#x27;微博密码&#x27;;
     $request = new WP_Http;
    
     /* 获取文章标签关键词 */
     $keywords = "";
     $tags = wp_get_post_tags($post_ID);
     foreach ($tags as $tag ) {
        $keywords = $keywords.&#x27;#&#x27;.$tag->name."#";
     }
     /* 修改了下风格,并添加文章关键词作为微博话题,提高与其他相关微博的关联率 */
     $string1 = &#x27;【文章发布】&#x27; . strip_tags( $get_post_title ).&#x27;:&#x27;;
     $string2 = $keywords.&#x27; 查看全文:&#x27;.get_permalink($post_ID);
 
     /* 微博字数控制,避免超标同步失败 */
     $wb_num = (138 - WeiboLength($string1.$string2))*2;
     $status = $string1.mb_strimwidth(strip_tags( apply_filters(&#x27;the_content&#x27;, $get_post_centent)),0, $wb_num,&#x27;...&#x27;).$string2;
 
     $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B
     $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey);
     $headers = array(&#x27;Authorization&#x27; => &#x27;Basic &#x27; . base64_encode("$username:$userpassword"));
     $result = $request->post($api_url, array(&#x27;body&#x27; => $body,&#x27;headers&#x27; => $headers));
 
     /* 若同步成功,则给新增自定义栏目weibo_sync,避免以后更新文章重复同步 */
     add_post_meta($post_ID, &#x27;weibo_sync&#x27;, 1, true);
   }
}
add_action(&#x27;publish_post&#x27;, &#x27;post_to_sina_weibo&#x27;, 0);
 
/*
//获取微博字符长度函数
*/
function WeiboLength($str)
{
    $arr = arr_split_zh($str);   //先将字符串分割到数组中
    foreach ($arr as $v){
        $temp = ord($v);        //转换为ASCII码
        if ($temp > 0 && $temp < 127) {
            $len = $len+0.5;
        }else{
            $len ++;
        }
    }
    return ceil($len);        //加一取整
}
/*
//拆分字符串函数,只支持 gb2312编码  
//参考:http://u-czh.iteye.com/blog/1565858
*/
function arr_split_zh($tempaddtext){
    $tempaddtext = iconv("UTF-8", "GBK//IGNORE", $tempaddtext);
    $cind = 0;
    $arr_cont=array();
    for($i=0;$i 0){
            if(ord(substr($tempaddtext,$cind,1)) < 0xA1 ){ //如果为英文则取1个字节
                array_push($arr_cont,substr($tempaddtext,$cind,1));
                $cind++;
            }else{
                array_push($arr_cont,substr($tempaddtext,$cind,2));
                $cind+=2;
            }
        }
    }
    foreach ($arr_cont as &$row)
    {
        $row=iconv("gb2312","UTF-8",$row);
    }
    return $arr_cont;
}
  我修改的内容在代码中有相应的注释,一看就懂!
  修改目的:一是针对【部分WordPress博客禁用修改功能】中的该功能,不会因为更新文章而造成微博重复同步的尴尬;二是增加字数控制,避免字数超过140导致同步失败。
  同步后是这样的效果:
  上述代码的使用很简单,只需将其添加到主题目录下的functions.php中即可。至于如何实现【来自XX博客】的效果,需要到新浪微博开放平台申请网站应用权限:
  具体操作步骤请到无题博客查看相关教程,这里不再赘述==&gt;传送门开始!
  二、新代码
  上面代码同步的时候没有图片,有点遗憾。
  昨天闲来无事,看了新浪的API文档,发现符合要求的API接口:
  ps:API文档地址:
  仔细看参数说明,修改之前的代码。代码如下(请注意第6~7行):
  2016年12月18日更新:1、增加同步日志,方便查看失败原因;2、增加了对同步结果的判断,如果失败则不添加自定义列。Ps:请使用下面的最新代码覆盖旧代码。
  /**
* WordPress发布文章同步到新浪微博(带图片&自定义栏目版)
* 文章地址:http://zhangge.net/4947.html
* 最后更新:2016年12月18日
*/
function post_to_sina_weibo($post_ID) {
   /* 鉴于很多朋友反馈发布文章空白,临时加上调试代码,若无问题可删除此行,若有问题请将错误信息在本文留言即可 */
   ini_set(&#x27;display_errors&#x27;, true);
 
   /* 此处修改为通过文章自定义栏目来判断是否同步 */
   if(get_post_meta($post_ID,&#x27;weibo_sync&#x27;,true) == 1) return;
 
   $get_post_info = get_post($post_ID);
   $get_post_centent = get_post($post_ID)->post_content;
   $get_post_title = get_post($post_ID)->post_title;
   if ($get_post_info->post_status == &#x27;publish&#x27; && $_POST[&#x27;original_post_status&#x27;] != &#x27;publish&#x27;) {
       $appkey=&#x27;1034947262&#x27;; /* 此处是你的新浪微博appkey,不修改的话就会显示来自张戈博客哦! */
       $username=&#x27;微博用户名&#x27;;
       $userpassword=&#x27;微博密码&#x27;;
       $request = new WP_Http;
       $keywords = "";
 
       /* 获取文章标签关键词 */
       $tags = wp_get_post_tags($post_ID);
       foreach ($tags as $tag ) {
          $keywords = $keywords.&#x27;#&#x27;.$tag->name."#";
       }
 
      /* 修改了下风格,并添加文章关键词作为微博话题,提高与其他相关微博的关联率 */
     $string1 = &#x27;【文章发布】&#x27; . strip_tags( $get_post_title ).&#x27;:&#x27;;
     $string2 = $keywords.&#x27; 查看全文:&#x27;.get_permalink($post_ID);
 
     /* 微博字数控制,避免超标同步失败 */
      $wb_num = (138 - WeiboLength($string1.$string2))*2;
      $status = $string1.mb_strimwidth(strip_tags( apply_filters(&#x27;the_content&#x27;, $get_post_centent)),0, $wb_num,&#x27;...&#x27;).$string2;
    
       /* 获取特色图片,如果没设置就抓取文章第一张图片 */
       $url = get_mypost_thumbnail($post_ID);
    
       /* 判断是否存在图片,定义不同的接口 */
       if(!empty($url)){
           $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B /* 新的API接口地址 */
           $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey,&#x27;url&#x27; => $url);
       } else {
           $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B
           $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey);
       }
       $headers = array(&#x27;Authorization&#x27; => &#x27;Basic &#x27; . base64_encode("$username:$userpassword"));
       $results = $request->post($api_url, array(&#x27;body&#x27; => $body,&#x27;headers&#x27; => $headers));
       $result  = $results[&#x27;body&#x27;];
        if(!strstr($result ,&#x27;error_code&#x27;)) {
            // 若成功,则给新增自定义栏目weibo_sync,避免以后更新文章重复同步
            add_post_meta($post_ID, &#x27;weibo_sync&#x27;, 1, true);
        } else {
            // 若失败,则记录错误日志
            logInfo($result);
        }  
       add_post_meta($post_ID, &#x27;weibo_sync&#x27;, 1, true);
    }
}
add_action(&#x27;publish_post&#x27;, &#x27;post_to_sina_weibo&#x27;, 0);
 
/*
//获取微博字符长度函数
*/
function WeiboLength($str)
{
    $arr = arr_split_zh($str);   //先将字符串分割到数组中
    foreach ($arr as $v){
        $temp = ord($v);        //转换为ASCII码
        if ($temp > 0 && $temp < 127) {
            $len = $len+0.5;
        }else{
            $len ++;
        }
    }
    return ceil($len);        //加一取整
}
/*
//拆分字符串函数,只支持 gb2312编码  
//参考:http://u-czh.iteye.com/blog/1565858
*/
function arr_split_zh($tempaddtext){
    $tempaddtext = iconv("UTF-8", "GBK//IGNORE", $tempaddtext);
    $cind = 0;
    $arr_cont=array();
    for($i=0;$i 0){
            if(ord(substr($tempaddtext,$cind,1)) < 0xA1 ){ //如果为英文则取1个字节
                array_push($arr_cont,substr($tempaddtext,$cind,1));
                $cind++;
            }else{
                array_push($arr_cont,substr($tempaddtext,$cind,2));
                $cind+=2;
            }
        }
    }
    foreach ($arr_cont as &$row)
    {
        $row=iconv("gb2312","UTF-8",$row);
    }
    return $arr_cont;
}
 
/**
* WordPress 获取文章图片加强版 By 张戈博客
*/
if(!function_exists(&#x27;get_mypost_thumbnail&#x27;)){
  function get_mypost_thumbnail($post_ID){
     if (has_post_thumbnail()) {
            $timthumb_src = wp_get_attachment_image_src( get_post_thumbnail_id($post_ID), &#x27;full&#x27; );
            $url = $timthumb_src[0];
    } else {
        if(!$post_content){
            $post = get_post($post_ID);
            $post_content = $post->post_content;
        }
        preg_match_all(&#x27;||i&#x27;, do_shortcode($post_content), $matches);
        if( $matches && isset($matches[1]) && isset($matches[1][0]) ){      
            $url =  $matches[1][0];
        }else{
            $url =  &#x27;&#x27;;
        }
    }
    return $url;
  }
}
 
//写日志函数
function logInfo($msg)
{
    $logSwitch  = 1;                     // 日志开关:1表示打开,0表示关闭
    $logFile    = &#x27;/tmp/sync_weibo.log&#x27;; // 日志路径          
    if ($logSwitch == 0 ) return;
    date_default_timezone_set(&#x27;Asia/Shanghai&#x27;);
    file_put_contents($logFile, date(&#x27;[Y-m-d H:i:s]: &#x27;) . $msg . PHP_EOL, FILE_APPEND);
    return $msg;
}
  三、权限申请
  万事俱备,但是发布文章肯定不会同步,为什么呢?因为我没有权限~!原来这个接口需要在原有的基础上额外应用。
  如果你的网站已经在微博申请访问权限,点击应用名称即可:
  然后,在界面管理==&gt;申请权限==&gt;申请微博的高级写权限:
  无论多么容易,门槛多么低,我们在问别人的时候都要保持真诚的态度:
  一般1个工作日内即可过关:
  通过后可以发布文章,可以看到效果,不仅有特色图片,还有显示【来自XX博客】:
  它是否再次满足了您的迫切需求?哈哈!
  2016年1月16日新增内容:我们最近发现了一个微博同步失败的原因,分享了微博同步失败的终极DeBUG方法。详情请见: 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(
修改一下才能用,和之前修改百度sitemap插件原理一致)
  function post_to_sina_weibo($post_ID) {
   if (wp_is_post_revision($post_ID)) return;  //修订版本(更新)不发微博
   $get_post_info = get_post($post_ID);
   $get_post_centent = get_post($post_ID)->post_content;
   $get_post_title = get_post($post_ID)->post_title;
   if ($get_post_info->post_status == &#x27;publish&#x27; && $_POST[&#x27;original_post_status&#x27;] != &#x27;publish&#x27;) {
     $appkey=&#x27;3838258703&#x27;;
     $username=&#x27;微博用户名&#x27;;
     $userpassword=&#x27;微博密码&#x27;;
     $request = new WP_Http;
     $status = &#x27;【&#x27; . strip_tags($get_post_title) . &#x27;】 &#x27; . mb_strimwidth(strip_tags(apply_filters(&#x27;the_content&#x27;, $get_post_centent)) , 0, 132, &#x27;...&#x27;) . &#x27; 全文地址:&#x27; . get_permalink($post_ID);
     $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B
     $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey);
     $headers = array(&#x27;Authorization&#x27; => &#x27;Basic &#x27; . base64_encode("$username:$userpassword"));
     $result = $request->post($api_url, array(&#x27;body&#x27; => $body,&#x27;headers&#x27; => $headers));
   }
}
add_action(&#x27;publish_post&#x27;, &#x27;post_to_sina_weibo&#x27;, 0);//给发布文章增加一个分享微博的动作
  同步后是这样的效果:
  由于我的博客已经关闭了修改版,所以必须修改后才能使用,这和之前修改百度站点地图插件的原则是一致的(请注意第2~3行):
  function post_to_sina_weibo($post_ID) {
   /* 鉴于很多朋友反馈发布文章空白,临时加上调试代码,若无问题可删除此行,若有问题请将错误信息在本文留言即可 */
   ini_set(&#x27;display_errors&#x27;, true);
 
   /* 此处修改为通过文章自定义栏目来判断是否同步 */
   if(get_post_meta($post_ID,&#x27;weibo_sync&#x27;,true) == 1) return;
 
   $get_post_info = get_post($post_ID);
   $get_post_centent = get_post($post_ID)->post_content;
   $get_post_title = get_post($post_ID)->post_title;
   if ($get_post_info->post_status == &#x27;publish&#x27; && $_POST[&#x27;original_post_status&#x27;] != &#x27;publish&#x27;) {
     $appkey=&#x27;1034947262&#x27;;  /* 此处是你的新浪微博appkey,不修改的话就会显示来自张戈博客哦! */
     $username=&#x27;微博用户名&#x27;;
     $userpassword=&#x27;微博密码&#x27;;
     $request = new WP_Http;
    
     /* 获取文章标签关键词 */
     $keywords = "";
     $tags = wp_get_post_tags($post_ID);
     foreach ($tags as $tag ) {
        $keywords = $keywords.&#x27;#&#x27;.$tag->name."#";
     }
     /* 修改了下风格,并添加文章关键词作为微博话题,提高与其他相关微博的关联率 */
     $string1 = &#x27;【文章发布】&#x27; . strip_tags( $get_post_title ).&#x27;:&#x27;;
     $string2 = $keywords.&#x27; 查看全文:&#x27;.get_permalink($post_ID);
 
     /* 微博字数控制,避免超标同步失败 */
     $wb_num = (138 - WeiboLength($string1.$string2))*2;
     $status = $string1.mb_strimwidth(strip_tags( apply_filters(&#x27;the_content&#x27;, $get_post_centent)),0, $wb_num,&#x27;...&#x27;).$string2;
 
     $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B
     $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey);
     $headers = array(&#x27;Authorization&#x27; => &#x27;Basic &#x27; . base64_encode("$username:$userpassword"));
     $result = $request->post($api_url, array(&#x27;body&#x27; => $body,&#x27;headers&#x27; => $headers));
 
     /* 若同步成功,则给新增自定义栏目weibo_sync,避免以后更新文章重复同步 */
     add_post_meta($post_ID, &#x27;weibo_sync&#x27;, 1, true);
   }
}
add_action(&#x27;publish_post&#x27;, &#x27;post_to_sina_weibo&#x27;, 0);
 
/*
//获取微博字符长度函数
*/
function WeiboLength($str)
{
    $arr = arr_split_zh($str);   //先将字符串分割到数组中
    foreach ($arr as $v){
        $temp = ord($v);        //转换为ASCII码
        if ($temp > 0 && $temp < 127) {
            $len = $len+0.5;
        }else{
            $len ++;
        }
    }
    return ceil($len);        //加一取整
}
/*
//拆分字符串函数,只支持 gb2312编码  
//参考:http://u-czh.iteye.com/blog/1565858
*/
function arr_split_zh($tempaddtext){
    $tempaddtext = iconv("UTF-8", "GBK//IGNORE", $tempaddtext);
    $cind = 0;
    $arr_cont=array();
    for($i=0;$i 0){
            if(ord(substr($tempaddtext,$cind,1)) < 0xA1 ){ //如果为英文则取1个字节
                array_push($arr_cont,substr($tempaddtext,$cind,1));
                $cind++;
            }else{
                array_push($arr_cont,substr($tempaddtext,$cind,2));
                $cind+=2;
            }
        }
    }
    foreach ($arr_cont as &$row)
    {
        $row=iconv("gb2312","UTF-8",$row);
    }
    return $arr_cont;
}
  我修改的内容在代码中有相应的注释,一看就懂!
  修改目的:一是针对【部分WordPress博客禁用修改功能】中的该功能,不会因为更新文章而造成微博重复同步的尴尬;二是增加字数控制,避免字数超过140导致同步失败。
  同步后是这样的效果:
  上述代码的使用很简单,只需将其添加到主题目录下的functions.php中即可。至于如何实现【来自XX博客】的效果,需要到新浪微博开放平台申请网站应用权限:
  具体操作步骤请到无题博客查看相关教程,这里不再赘述==&gt;传送门开始!
  二、新代码
  上面代码同步的时候没有图片,有点遗憾。
  昨天闲来无事,看了新浪的API文档,发现符合要求的API接口:
  ps:API文档地址:
  仔细看参数说明,修改之前的代码。代码如下(请注意第6~7行):
  2016年12月18日更新:1、增加同步日志,方便查看失败原因;2、增加了对同步结果的判断,如果失败则不添加自定义列。Ps:请使用下面的最新代码覆盖旧代码。
  /**
* WordPress发布文章同步到新浪微博(带图片&自定义栏目版)
* 文章地址:http://zhangge.net/4947.html
* 最后更新:2016年12月18日
*/
function post_to_sina_weibo($post_ID) {
   /* 鉴于很多朋友反馈发布文章空白,临时加上调试代码,若无问题可删除此行,若有问题请将错误信息在本文留言即可 */
   ini_set(&#x27;display_errors&#x27;, true);
 
   /* 此处修改为通过文章自定义栏目来判断是否同步 */
   if(get_post_meta($post_ID,&#x27;weibo_sync&#x27;,true) == 1) return;
 
   $get_post_info = get_post($post_ID);
   $get_post_centent = get_post($post_ID)->post_content;
   $get_post_title = get_post($post_ID)->post_title;
   if ($get_post_info->post_status == &#x27;publish&#x27; && $_POST[&#x27;original_post_status&#x27;] != &#x27;publish&#x27;) {
       $appkey=&#x27;1034947262&#x27;; /* 此处是你的新浪微博appkey,不修改的话就会显示来自张戈博客哦! */
       $username=&#x27;微博用户名&#x27;;
       $userpassword=&#x27;微博密码&#x27;;
       $request = new WP_Http;
       $keywords = "";
 
       /* 获取文章标签关键词 */
       $tags = wp_get_post_tags($post_ID);
       foreach ($tags as $tag ) {
          $keywords = $keywords.&#x27;#&#x27;.$tag->name."#";
       }
 
      /* 修改了下风格,并添加文章关键词作为微博话题,提高与其他相关微博的关联率 */
     $string1 = &#x27;【文章发布】&#x27; . strip_tags( $get_post_title ).&#x27;:&#x27;;
     $string2 = $keywords.&#x27; 查看全文:&#x27;.get_permalink($post_ID);
 
     /* 微博字数控制,避免超标同步失败 */
      $wb_num = (138 - WeiboLength($string1.$string2))*2;
      $status = $string1.mb_strimwidth(strip_tags( apply_filters(&#x27;the_content&#x27;, $get_post_centent)),0, $wb_num,&#x27;...&#x27;).$string2;
    
       /* 获取特色图片,如果没设置就抓取文章第一张图片 */
       $url = get_mypost_thumbnail($post_ID);
    
       /* 判断是否存在图片,定义不同的接口 */
       if(!empty($url)){
           $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B /* 新的API接口地址 */
           $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey,&#x27;url&#x27; => $url);
       } else {
           $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B
           $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey);
       }
       $headers = array(&#x27;Authorization&#x27; => &#x27;Basic &#x27; . base64_encode("$username:$userpassword"));
       $results = $request->post($api_url, array(&#x27;body&#x27; => $body,&#x27;headers&#x27; => $headers));
       $result  = $results[&#x27;body&#x27;];
        if(!strstr($result ,&#x27;error_code&#x27;)) {
            // 若成功,则给新增自定义栏目weibo_sync,避免以后更新文章重复同步
            add_post_meta($post_ID, &#x27;weibo_sync&#x27;, 1, true);
        } else {
            // 若失败,则记录错误日志
            logInfo($result);
        }  
       add_post_meta($post_ID, &#x27;weibo_sync&#x27;, 1, true);
    }
}
add_action(&#x27;publish_post&#x27;, &#x27;post_to_sina_weibo&#x27;, 0);
 
/*
//获取微博字符长度函数
*/
function WeiboLength($str)
{
    $arr = arr_split_zh($str);   //先将字符串分割到数组中
    foreach ($arr as $v){
        $temp = ord($v);        //转换为ASCII码
        if ($temp > 0 && $temp < 127) {
            $len = $len+0.5;
        }else{
            $len ++;
        }
    }
    return ceil($len);        //加一取整
}
/*
//拆分字符串函数,只支持 gb2312编码  
//参考:http://u-czh.iteye.com/blog/1565858
*/
function arr_split_zh($tempaddtext){
    $tempaddtext = iconv("UTF-8", "GBK//IGNORE", $tempaddtext);
    $cind = 0;
    $arr_cont=array();
    for($i=0;$i 0){
            if(ord(substr($tempaddtext,$cind,1)) < 0xA1 ){ //如果为英文则取1个字节
                array_push($arr_cont,substr($tempaddtext,$cind,1));
                $cind++;
            }else{
                array_push($arr_cont,substr($tempaddtext,$cind,2));
                $cind+=2;
            }
        }
    }
    foreach ($arr_cont as &$row)
    {
        $row=iconv("gb2312","UTF-8",$row);
    }
    return $arr_cont;
}
 
/**
* WordPress 获取文章图片加强版 By 张戈博客
*/
if(!function_exists(&#x27;get_mypost_thumbnail&#x27;)){
  function get_mypost_thumbnail($post_ID){
     if (has_post_thumbnail()) {
            $timthumb_src = wp_get_attachment_image_src( get_post_thumbnail_id($post_ID), &#x27;full&#x27; );
            $url = $timthumb_src[0];
    } else {
        if(!$post_content){
            $post = get_post($post_ID);
            $post_content = $post->post_content;
        }
        preg_match_all(&#x27;||i&#x27;, do_shortcode($post_content), $matches);
        if( $matches && isset($matches[1]) && isset($matches[1][0]) ){      
            $url =  $matches[1][0];
        }else{
            $url =  &#x27;&#x27;;
        }
    }
    return $url;
  }
}
 
//写日志函数
function logInfo($msg)
{
    $logSwitch  = 1;                     // 日志开关:1表示打开,0表示关闭
    $logFile    = &#x27;/tmp/sync_weibo.log&#x27;; // 日志路径          
    if ($logSwitch == 0 ) return;
    date_default_timezone_set(&#x27;Asia/Shanghai&#x27;);
    file_put_contents($logFile, date(&#x27;[Y-m-d H:i:s]: &#x27;) . $msg . PHP_EOL, FILE_APPEND);
    return $msg;
}
  三、权限申请
  万事俱备,但是发布文章肯定不会同步,为什么呢?因为我没有权限~!原来这个接口需要在原有的基础上额外应用。
  如果你的网站已经在微博申请访问权限,点击应用名称即可:
  然后,在界面管理==&gt;申请权限==&gt;申请微博的高级写权限:
  无论多么容易,门槛多么低,我们在问别人的时候都要保持真诚的态度:
  一般1个工作日内即可过关:
  通过后可以发布文章,可以看到效果,不仅有特色图片,还有显示【来自XX博客】:
  它是否再次满足了您的迫切需求?哈哈!
  2016年1月16日新增内容:我们最近发现了一个微博同步失败的原因,分享了微博同步失败的终极DeBUG方法。详情请见:

使用新浪微博开放平台api同步微博内容至自己网站(经品牌几何编写「同步圈」,竟然可以将朋友圈同时同步到新浪微博去)

网站优化优采云 发表了文章 • 0 个评论 • 63 次浏览 • 2022-03-09 16:06 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(经品牌几何编写「同步圈」,竟然可以将朋友圈同时同步到新浪微博去)
  我相信每个人都是一样的。自从开始玩微信之后,新浪微博基本就冷清了,三五天、一两周才更新一次。不知不觉中,觉得在微博和微信上切换发布个人信息有点累赘,或者觉得不同平台的信息流交流还是比较不方便……
  今天的品牌几何为您提供了科普新技能。偶然看到一篇文章文章,发现了一个“同步圈”,可以同时将朋友圈同步到新浪微博。
  原则上,“同步圈”调用了微信朋友圈上的一些内容识别接口,可以自动抓取绑定用户的朋友圈内容,然后使用微博开放平台的API接口发送相同的内容。出去。抽象地说,“同步圈”与著名的自动化服务 IFTTT 非常相似。只不过它在微信封闭的城墙上开通了单向信息站,帮助用户将内容输出到更广阔的公共网络空间。
  好了,废话不多说,让我们看看怎么做吧!
  ▼
  
  2、然后点击“立即体验”授权新浪微博。
  
  3、授权新浪微博后,按照以下步骤完成。
  4、完成步骤后,你的微信里会多出一个好友“同步圈”。
  
  5、 那么,当你进入朋友圈时,“同步圈”会自动为你同步到新浪微博。
  但是,目前的“同步圈”存在以下两个不足:
  1. 小视频无法同步。
  2. 发多张朋友圈的时候,只能同步第一张到微博。
  另外,如果不想将某个朋友圈同步到微博,可以给“同步圈”的朋友设置一个标签。发不想同步微博的朋友圈时,将“同步圈”好友设置为不可见。.
  好了,新技能就普及到这里,快来试试吧!
  来源 | 90后俱乐部(ID:club_12)
  由品牌几何撰写 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(经品牌几何编写「同步圈」,竟然可以将朋友圈同时同步到新浪微博去)
  我相信每个人都是一样的。自从开始玩微信之后,新浪微博基本就冷清了,三五天、一两周才更新一次。不知不觉中,觉得在微博和微信上切换发布个人信息有点累赘,或者觉得不同平台的信息流交流还是比较不方便……
  今天的品牌几何为您提供了科普新技能。偶然看到一篇文章文章,发现了一个“同步圈”,可以同时将朋友圈同步到新浪微博。
  原则上,“同步圈”调用了微信朋友圈上的一些内容识别接口,可以自动抓取绑定用户的朋友圈内容,然后使用微博开放平台的API接口发送相同的内容。出去。抽象地说,“同步圈”与著名的自动化服务 IFTTT 非常相似。只不过它在微信封闭的城墙上开通了单向信息站,帮助用户将内容输出到更广阔的公共网络空间。
  好了,废话不多说,让我们看看怎么做吧!
  ▼
  
  2、然后点击“立即体验”授权新浪微博。
  
  3、授权新浪微博后,按照以下步骤完成。
  4、完成步骤后,你的微信里会多出一个好友“同步圈”。
  
  5、 那么,当你进入朋友圈时,“同步圈”会自动为你同步到新浪微博。
  但是,目前的“同步圈”存在以下两个不足:
  1. 小视频无法同步。
  2. 发多张朋友圈的时候,只能同步第一张到微博。
  另外,如果不想将某个朋友圈同步到微博,可以给“同步圈”的朋友设置一个标签。发不想同步微博的朋友圈时,将“同步圈”好友设置为不可见。.
  好了,新技能就普及到这里,快来试试吧!
  来源 | 90后俱乐部(ID:club_12)
  由品牌几何撰写

使用新浪微博开放平台api同步微博内容至自己网站(新浪微博开放平台复制代码代码:$_$数组(图))

网站优化优采云 发表了文章 • 0 个评论 • 49 次浏览 • 2022-03-08 22:06 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博开放平台复制代码代码:$_$数组(图))
  本节内容:
  新浪微博API的php实例。
  新浪微博API开发资源很多。新浪微博为开发者提供平台。该网站是: 收录新浪微博发展的综合信息,包括开发者的使用和介绍,以及各种语言。API功能介绍文档、SDK等资料。
  首先,在新浪微博开放平台下载基于PHP的SDK开发包。下载地址为:
  将下载包放入开发环境并解压。演示程序也收录在其中。您可以参考其示例程序进行编写。
  新浪微博API开发最重要的用户授权流程
  开发的第三方应用程序使用 OAuth 授权。新浪微博开放平台对OAuth授权流程有清晰完整的介绍,可以看这里。
  1.首先,获取一个未授权的 Request Token
  复制代码代码示例:
  $o = new WeiboOAuth( WB_AKEY , WB_SKEY );
  $keys = $o-&gt;getRequestToken();
  //echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);
  您需要在新浪微博开放平台注册一个账号,或者直接用您的新浪微博账号登录,进入应用,按照提示创建自己的第三方应用。创建完成后,可以获得两个授权的App Key和App Secret值。,这两个值是开发应用的关键。
  获取到授权值后,就可以使用上面的代码获取未授权的Request Token值,该值会存储在$key数组变量中。
  2.请求用户授权Token
  复制代码代码示例:
  $_SESSION['keys'] = $keys;
  aurl = $o-&gt;getAuthorizeURL( $keys['oauth_token'] ,false , '#39;);
  获取到未授权的Request Token值后,就可以使用上面的代码开始准备去新浪微博授权页面进行授权了。$aurl 是授权链接页面。获取到$aurl后,可以使用header()直接跳转到授权页面,然后用户输入新浪微博账号和密码进行授权。授权完成后会自动跳转回你在上一个参数中设置的回调页面:你可以设置链接到上一页,这样授权完成后会自动返回页面。跳回来。
  注意:需要设置会话密钥的值,这是获取下面授权的Access Token所需要的。很多朋友可能会参考开放平台上的说明进行授权,但是发现总是报错,一般是这个问题。你没有设置 session keys 的值,当然下面无法获取 Access Token 的值。必须记住这一点。
  3.用户授权的Access Token
  复制代码代码示例:
  $o = new WeiboOAuth( WB_AKEY ,
  WB_SKEY ,
  $_SESSION['keys']['oauth_token'] ,
  $_SESSION['keys']['oauth_token_secret'] );
  $last_key = $o-&gt;getAccessToken( $_REQUEST['oauth_verifier'] ) ;
  回声($last_key['oauth_token']);
  上述代码最终得到用户授权的Access Token,一共有两个值,存放在$last_key数组变量中。还可以看到最后两个参数是之前设置的session值。至此基本完成,这就是一个完整的新浪微博用户授权流程。
  授权完成后工作
  授权完成后,即可开始调用新浪微博提供的各种API函数接口进行实际应用开发。在这里,我们将简要说明获取最新微博记录的接口。其他类似。
  获取新浪微博最新信息的API接口函数为:public_timeline()。示例代码如下:
  复制代码代码示例:
  //获取前20条最新更新的公众微博消息
  $c = new WeiboClient( WB_AKEY ,
  WB_SKEY ,
  $oauth_token ,
  $oauth_token_secret );
  $msg = $c-&gt;public_timeline();
  if ($msg === false || $msg === null){
  echo "发生错误";
  返回假;
  }
  if (isset($msg['error_code']) &amp;&amp; isset($msg['error'])){
  echo ('Error_code: '.$msg['error_code'].'; 错误: '.$msg['error'] );
  返回假;
  }
  print_r($msg);
  通常,在获取到用户授权的Access Token值后,存储在用户表中,与应用中的账号对应。之后,在每次调用新浪微博的各个api接口时,就无需再进行认证了。
  实例化 WeiboClient 对象,然后直接调用接口函数 public_timeline 获取返回信息,如果没有错误。通常新浪微博api接口返回的数据格式一般是Json格式或者xml格式,而这里是用php开发的,所以使用Json格式数据有先天优势,如果返回Json格式数据,直接使用php函数json_decode()可以转换成php常用的数组格式。 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博开放平台复制代码代码:$_$数组(图))
  本节内容:
  新浪微博API的php实例。
  新浪微博API开发资源很多。新浪微博为开发者提供平台。该网站是: 收录新浪微博发展的综合信息,包括开发者的使用和介绍,以及各种语言。API功能介绍文档、SDK等资料。
  首先,在新浪微博开放平台下载基于PHP的SDK开发包。下载地址为:
  将下载包放入开发环境并解压。演示程序也收录在其中。您可以参考其示例程序进行编写。
  新浪微博API开发最重要的用户授权流程
  开发的第三方应用程序使用 OAuth 授权。新浪微博开放平台对OAuth授权流程有清晰完整的介绍,可以看这里。
  1.首先,获取一个未授权的 Request Token
  复制代码代码示例:
  $o = new WeiboOAuth( WB_AKEY , WB_SKEY );
  $keys = $o-&gt;getRequestToken();
  //echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);
  您需要在新浪微博开放平台注册一个账号,或者直接用您的新浪微博账号登录,进入应用,按照提示创建自己的第三方应用。创建完成后,可以获得两个授权的App Key和App Secret值。,这两个值是开发应用的关键。
  获取到授权值后,就可以使用上面的代码获取未授权的Request Token值,该值会存储在$key数组变量中。
  2.请求用户授权Token
  复制代码代码示例:
  $_SESSION['keys'] = $keys;
  aurl = $o-&gt;getAuthorizeURL( $keys['oauth_token'] ,false , '#39;);
  获取到未授权的Request Token值后,就可以使用上面的代码开始准备去新浪微博授权页面进行授权了。$aurl 是授权链接页面。获取到$aurl后,可以使用header()直接跳转到授权页面,然后用户输入新浪微博账号和密码进行授权。授权完成后会自动跳转回你在上一个参数中设置的回调页面:你可以设置链接到上一页,这样授权完成后会自动返回页面。跳回来。
  注意:需要设置会话密钥的值,这是获取下面授权的Access Token所需要的。很多朋友可能会参考开放平台上的说明进行授权,但是发现总是报错,一般是这个问题。你没有设置 session keys 的值,当然下面无法获取 Access Token 的值。必须记住这一点。
  3.用户授权的Access Token
  复制代码代码示例:
  $o = new WeiboOAuth( WB_AKEY ,
  WB_SKEY ,
  $_SESSION['keys']['oauth_token'] ,
  $_SESSION['keys']['oauth_token_secret'] );
  $last_key = $o-&gt;getAccessToken( $_REQUEST['oauth_verifier'] ) ;
  回声($last_key['oauth_token']);
  上述代码最终得到用户授权的Access Token,一共有两个值,存放在$last_key数组变量中。还可以看到最后两个参数是之前设置的session值。至此基本完成,这就是一个完整的新浪微博用户授权流程。
  授权完成后工作
  授权完成后,即可开始调用新浪微博提供的各种API函数接口进行实际应用开发。在这里,我们将简要说明获取最新微博记录的接口。其他类似。
  获取新浪微博最新信息的API接口函数为:public_timeline()。示例代码如下:
  复制代码代码示例:
  //获取前20条最新更新的公众微博消息
  $c = new WeiboClient( WB_AKEY ,
  WB_SKEY ,
  $oauth_token ,
  $oauth_token_secret );
  $msg = $c-&gt;public_timeline();
  if ($msg === false || $msg === null){
  echo "发生错误";
  返回假;
  }
  if (isset($msg['error_code']) &amp;&amp; isset($msg['error'])){
  echo ('Error_code: '.$msg['error_code'].'; 错误: '.$msg['error'] );
  返回假;
  }
  print_r($msg);
  通常,在获取到用户授权的Access Token值后,存储在用户表中,与应用中的账号对应。之后,在每次调用新浪微博的各个api接口时,就无需再进行认证了。
  实例化 WeiboClient 对象,然后直接调用接口函数 public_timeline 获取返回信息,如果没有错误。通常新浪微博api接口返回的数据格式一般是Json格式或者xml格式,而这里是用php开发的,所以使用Json格式数据有先天优势,如果返回Json格式数据,直接使用php函数json_decode()可以转换成php常用的数组格式。

使用新浪微博开放平台api同步微博内容至自己网站(之前微博node.js是我之前没用过的吗?(组图) )

网站优化优采云 发表了文章 • 0 个评论 • 59 次浏览 • 2022-03-07 22:17 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(之前微博node.js是我之前没用过的吗?(组图)
)
  我之前一直在使用新浪微博的api进行数据同步。今年年初,1月8日左右,微博的api不知什么原因突然不可用,接口调用不断出现403错误。“开发平台”一直是机器回复。
  因此,我猜新浪微博关闭了它的api。我猜可能是因为微博太难赚钱了,所以向腾讯学习,封闭数据赚大钱。
  不过我在微博上贴了很多数据,但是微博到现在连数据备份都没有,所以我还是需要另找方法进行数据同步和备份操作,所以想用微博来转换rss。数据输出。
  11年前自己做了一个,但是时间太长了,里面的数据结构已经完全改了,不能用了,于是上网搜了一下有没有现成的项目,发现那个github上面有一个项目可以使用,但是它的部署使用的是node.js,我之前没用过。
  我在国外购买的云服务器使用的是lnmp(linux-nginx-mysql-php)环境,web服务器是nginx,小巧稳定,占用资源很少。低配置服务器可以执行动态 网站@ &gt;。我只是尝试将此 node.js 项目部署到此服务器。
  服务器没有安装node.js,所以需要先安装环境。面板中有一个“pm2 manager”,是一个node.js manager。内置node.js + npm + nvm + pm2,一键安装。
  安装好环境后,按照项目说明开始手动部署,按照之前部署php的思路,部署到wwwroot下的一个目录下。从网页访问后,页面可以出来,但是RSS提示“获取数据失败”。
  后来咨询了项目作者,才发现项目部署到了​​3000端口,而不是nginx的80和443端口。我用3000端口的地址访问,可以正常获取数据。
  当然,最后还是希望能在nginx下使用。在 nginx 中设置反向代理并将目录映射到端口 3000 以访问端口 80 和 443 上的此 node.js 项目。
   查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(之前微博node.js是我之前没用过的吗?(组图)
)
  我之前一直在使用新浪微博的api进行数据同步。今年年初,1月8日左右,微博的api不知什么原因突然不可用,接口调用不断出现403错误。“开发平台”一直是机器回复。
  因此,我猜新浪微博关闭了它的api。我猜可能是因为微博太难赚钱了,所以向腾讯学习,封闭数据赚大钱。
  不过我在微博上贴了很多数据,但是微博到现在连数据备份都没有,所以我还是需要另找方法进行数据同步和备份操作,所以想用微博来转换rss。数据输出。
  11年前自己做了一个,但是时间太长了,里面的数据结构已经完全改了,不能用了,于是上网搜了一下有没有现成的项目,发现那个github上面有一个项目可以使用,但是它的部署使用的是node.js,我之前没用过。
  我在国外购买的云服务器使用的是lnmp(linux-nginx-mysql-php)环境,web服务器是nginx,小巧稳定,占用资源很少。低配置服务器可以执行动态 网站@ &gt;。我只是尝试将此 node.js 项目部署到此服务器。
  服务器没有安装node.js,所以需要先安装环境。面板中有一个“pm2 manager”,是一个node.js manager。内置node.js + npm + nvm + pm2,一键安装。
  安装好环境后,按照项目说明开始手动部署,按照之前部署php的思路,部署到wwwroot下的一个目录下。从网页访问后,页面可以出来,但是RSS提示“获取数据失败”。
  后来咨询了项目作者,才发现项目部署到了​​3000端口,而不是nginx的80和443端口。我用3000端口的地址访问,可以正常获取数据。
  当然,最后还是希望能在nginx下使用。在 nginx 中设置反向代理并将目录映射到端口 3000 以访问端口 80 和 443 上的此 node.js 项目。
  

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

网站优化优采云 发表了文章 • 0 个评论 • 71 次浏览 • 2022-03-07 21:00 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博的API弄,也就没弄它。)
  一年前,我使用清华的数据集进行数据挖掘。看了新浪微博的API,不知道怎么做,所以没做。今年没想到需要再次采集数据。不能用清华。只需要自己弄清楚。
  其实最标准简洁的描述就在这里:去新浪微博开放平台,创建站内应用,获取App Key和App Secret后,去下载Java SDK,按照“如何使用”在本页。 "按照描述的步骤进行操作。
  但我不明白。
  我在网上参考了很多文章,主要是这一篇:博主的文笔也不错。我又按照这一步,基本成功了,但还是走了一些弯路。在这里我把我的亲身经历和心得贴出来供大家阅读。但同时也有不明白的地方,请多多指教。
  首先要下载新浪微博SDK。我用的是java,所以我下载了java版本的SDK。地址在这里:
  下载、解压并倒入MyEclipse项目。我直接用MyEclipse,不知道能不能用Eclipse,好像没什么区别。
  本项目中有各种API调用示例,只要有accessToken即可。但是现在关键是没有accessToken。以下是获取accessToken的方法。
  下一步是创建一个新浪微博应用程序。应用创建后才能获取accessToken。
  创建一个新的应用程序,创建一个“现场应用程序”。我第一次弄错了,创建了一个没有成功获取accessToken的移动应用程序。站内应用在网页顶部,将鼠标移动到“微连接”二字,下方弹出的四个应用,选择“站内应用”,跳转到站内应用,单击以创建应用程序。
  先填写应用名称,然后“填写所有内容”。之前的博客是这样写的。我知道要填什么,但不知道怎么填。
  主要混淆在这里:如何写“站点地址”,以及如何写“应用程序实际地址”。事实上,给站点地址添加一个后缀就足够了。有的人在“申请实际地址”里填的是自己网页的地址,我填。这似乎无关紧要。但是如果填写的地址是一个不存在的网页,我不知道会发生什么。总之,我用的是百度的O。
  创建后,现在可能处于测试阶段,此时应该可以尝试获取accessToken。当然,我是在完成后获得了申请信息。如果我没有完整地写它,我认为它不会影响它。但不能保证。
  注册应用后会有一个App Key和一个App Secret,记下来。
  然后,打开我们刚刚导入 MyEclipse 的项目。
  首先,你需要在项目中设置你的应用的App Key和App Secret。具体方法是打开项目中的src/config.properties,将之前记录的App Key和App Secret填入client_ID和client_SECRET,将之前填写的“应用实际地址”填入redrect_URI,保存。
  然后,点击examples/weibo4j.examples/oauth2/OAuth4Code.java,看到main方法中应该有这样的代码
  BareBonesBrowserLaunch.openURL(oauth.authorize("code",args[0],args[1]));
  System.out.println(oauth.authorize("code",args[0],args[1]));
  其实上面第二句可以忽略,只是输出语句而已。
  将上面两句中的args[0]和args[1]都改成“”(即空字符串)。
  运行,会打开一个界面,需要输入你创建应用时的微博账号密码进行授权。
  然后会跳转到之前设置的“应用实际地址”,和我一样会跳转到百度首页。
  此时,观察页面的URL,有一个code=XXX,复制code后面的东西。切换回MyEclipse,它输出了一句,最后是XXX[Enter]: 然后你把代码后面的字符串粘贴到控制台,回车,稍等片刻,会出来很多东西,最后一行会有一个图例 AccessToken 。
  这件事一定要写下来。
  那我就发微博了。详情请参考开头提到的博客。
  一般的方法是,在weibo4j.examples.timeline包下,UpdateStatus类下,看main方法的前两行,修改代码(或者添加命令行参数,随意),赋值access_token 到你刚刚记下的那个AccessToken,状态分配给你要发的微博,然后运行。
  用浏览器打开微博首页,你会发现一条新的微博帖子。
  与其他API函数类似,只需将access_token替换为之前获取的AccessToken字符串即可。
  如果要使用其他账号发布,需要反复执行OAuth4Code.java,然后填写另一个ID的账号密码进行授权,然后在密码后面输入一串信息,再获取另一个AccessToken。但是,在测试阶段,您可能需要先在我的应用中点击“应用信息”、“测试信息”,并在其中添加相应的账号。添加后,授权才会生效。
  注意:我没有亲自测试最后一段。只是猜测。 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博的API弄,也就没弄它。)
  一年前,我使用清华的数据集进行数据挖掘。看了新浪微博的API,不知道怎么做,所以没做。今年没想到需要再次采集数据。不能用清华。只需要自己弄清楚。
  其实最标准简洁的描述就在这里:去新浪微博开放平台,创建站内应用,获取App Key和App Secret后,去下载Java SDK,按照“如何使用”在本页。 "按照描述的步骤进行操作。
  但我不明白。
  我在网上参考了很多文章,主要是这一篇:博主的文笔也不错。我又按照这一步,基本成功了,但还是走了一些弯路。在这里我把我的亲身经历和心得贴出来供大家阅读。但同时也有不明白的地方,请多多指教。
  首先要下载新浪微博SDK。我用的是java,所以我下载了java版本的SDK。地址在这里:
  下载、解压并倒入MyEclipse项目。我直接用MyEclipse,不知道能不能用Eclipse,好像没什么区别。
  本项目中有各种API调用示例,只要有accessToken即可。但是现在关键是没有accessToken。以下是获取accessToken的方法。
  下一步是创建一个新浪微博应用程序。应用创建后才能获取accessToken。
  创建一个新的应用程序,创建一个“现场应用程序”。我第一次弄错了,创建了一个没有成功获取accessToken的移动应用程序。站内应用在网页顶部,将鼠标移动到“微连接”二字,下方弹出的四个应用,选择“站内应用”,跳转到站内应用,单击以创建应用程序。
  先填写应用名称,然后“填写所有内容”。之前的博客是这样写的。我知道要填什么,但不知道怎么填。
  主要混淆在这里:如何写“站点地址”,以及如何写“应用程序实际地址”。事实上,给站点地址添加一个后缀就足够了。有的人在“申请实际地址”里填的是自己网页的地址,我填。这似乎无关紧要。但是如果填写的地址是一个不存在的网页,我不知道会发生什么。总之,我用的是百度的O。
  创建后,现在可能处于测试阶段,此时应该可以尝试获取accessToken。当然,我是在完成后获得了申请信息。如果我没有完整地写它,我认为它不会影响它。但不能保证。
  注册应用后会有一个App Key和一个App Secret,记下来。
  然后,打开我们刚刚导入 MyEclipse 的项目。
  首先,你需要在项目中设置你的应用的App Key和App Secret。具体方法是打开项目中的src/config.properties,将之前记录的App Key和App Secret填入client_ID和client_SECRET,将之前填写的“应用实际地址”填入redrect_URI,保存。
  然后,点击examples/weibo4j.examples/oauth2/OAuth4Code.java,看到main方法中应该有这样的代码
  BareBonesBrowserLaunch.openURL(oauth.authorize("code",args[0],args[1]));
  System.out.println(oauth.authorize("code",args[0],args[1]));
  其实上面第二句可以忽略,只是输出语句而已。
  将上面两句中的args[0]和args[1]都改成“”(即空字符串)。
  运行,会打开一个界面,需要输入你创建应用时的微博账号密码进行授权。
  然后会跳转到之前设置的“应用实际地址”,和我一样会跳转到百度首页。
  此时,观察页面的URL,有一个code=XXX,复制code后面的东西。切换回MyEclipse,它输出了一句,最后是XXX[Enter]: 然后你把代码后面的字符串粘贴到控制台,回车,稍等片刻,会出来很多东西,最后一行会有一个图例 AccessToken 。
  这件事一定要写下来。
  那我就发微博了。详情请参考开头提到的博客。
  一般的方法是,在weibo4j.examples.timeline包下,UpdateStatus类下,看main方法的前两行,修改代码(或者添加命令行参数,随意),赋值access_token 到你刚刚记下的那个AccessToken,状态分配给你要发的微博,然后运行。
  用浏览器打开微博首页,你会发现一条新的微博帖子。
  与其他API函数类似,只需将access_token替换为之前获取的AccessToken字符串即可。
  如果要使用其他账号发布,需要反复执行OAuth4Code.java,然后填写另一个ID的账号密码进行授权,然后在密码后面输入一串信息,再获取另一个AccessToken。但是,在测试阶段,您可能需要先在我的应用中点击“应用信息”、“测试信息”,并在其中添加相应的账号。添加后,授权才会生效。
  注意:我没有亲自测试最后一段。只是猜测。

使用新浪微博开放平台api同步微博内容至自己网站(微博开放平台注册开发者并获取app和appsecret百度很容易)

网站优化优采云 发表了文章 • 0 个评论 • 78 次浏览 • 2022-03-06 17:15 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(微博开放平台注册开发者并获取app和appsecret百度很容易)
  简介本文章主要介绍微博开放平台api的使用(示例代码)及相关经验与技巧,文章约7015字,371页浏览量,8个赞,值得推荐!
  前言:微博开放平台为微博数据提供api接口,我们不仅可以直接调用微博服务发布微博,通过api查询微博,更重要的是,你可以自己获得新浪微博网站的授权api,调用微博的一些内容,就像我们在网站文章中看到的,想在微博或者其他社交网站上分享,非常方便。
  下面我们来一探究竟。
  1.注册开发者,获取app key和app secret
  百度很容易找到微博开放平台的入口,登录你的微博账号,点击账号头像,会提示你编辑开发者信息。
  
  可以看到如下页面,按照提示填写即可,紧急联系人可以自己填写,网站无所谓,百度填写。
  
  提交后需要在我的app下实名认证。上传图片时请耐心等待,有点慢,没有上传进度。上传后点击返回跳转到新页面:
  
  根据需要选择并创建您自己的应用程序。至于这里的各种应用名词的含义,我也不是很清楚,也很熟悉。我选择另一个应用程序
  
  
  创建后,您将收到一封收录应用密钥和应用密码的电子邮件。这是获得授权的关键。
  2.获取令牌
  点击首页的api接口,会跳转到api接口说明文档页面,你会发现api有很多功能,包括创建微博、删除微博、关注/取消关注等很多接口,但是每个接口都需要一个令牌。使用权。令牌从何而来?
  首先,你需要得到一个代码,其次,你需要一个URL来调用接口(因为我正在申请一个web应用程序)。
  设置关联的 URL:
  
  单击您的应用名称,然后在左侧菜单中找到高级信息,您可以对其进行编辑。
  
  点击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值。如果返回错误,请查看错误信息或百度错误信息。
  之后,您只需要携带令牌即可请求各种接口。虽然有次数限制,但应该足够正常使用了。
  后记:
  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.如果把开放的api嵌入到自己的网站中,一般做法是:在分享微博按钮(第三方登录按钮)上,发送微博授权认证,用户点击授权后网页,后台获取code,根据code获取token。之后,如果需要提取微博的用户名,可以直接在后台发送请求。如果分享到微博,也可以通过api来完成。
  如果以后在实践中用到这些功能,做个记录,本文到此结束。
  来自 Wiz 笔记 (Wiz) 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(微博开放平台注册开发者并获取app和appsecret百度很容易)
  简介本文章主要介绍微博开放平台api的使用(示例代码)及相关经验与技巧,文章约7015字,371页浏览量,8个赞,值得推荐!
  前言:微博开放平台为微博数据提供api接口,我们不仅可以直接调用微博服务发布微博,通过api查询微博,更重要的是,你可以自己获得新浪微博网站的授权api,调用微博的一些内容,就像我们在网站文章中看到的,想在微博或者其他社交网站上分享,非常方便。
  下面我们来一探究竟。
  1.注册开发者,获取app key和app secret
  百度很容易找到微博开放平台的入口,登录你的微博账号,点击账号头像,会提示你编辑开发者信息。
  
  可以看到如下页面,按照提示填写即可,紧急联系人可以自己填写,网站无所谓,百度填写。
  
  提交后需要在我的app下实名认证。上传图片时请耐心等待,有点慢,没有上传进度。上传后点击返回跳转到新页面:
  
  根据需要选择并创建您自己的应用程序。至于这里的各种应用名词的含义,我也不是很清楚,也很熟悉。我选择另一个应用程序
  
  
  创建后,您将收到一封收录应用密钥和应用密码的电子邮件。这是获得授权的关键。
  2.获取令牌
  点击首页的api接口,会跳转到api接口说明文档页面,你会发现api有很多功能,包括创建微博、删除微博、关注/取消关注等很多接口,但是每个接口都需要一个令牌。使用权。令牌从何而来?
  首先,你需要得到一个代码,其次,你需要一个URL来调用接口(因为我正在申请一个web应用程序)。
  设置关联的 URL:
  
  单击您的应用名称,然后在左侧菜单中找到高级信息,您可以对其进行编辑。
  
  点击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值。如果返回错误,请查看错误信息或百度错误信息。
  之后,您只需要携带令牌即可请求各种接口。虽然有次数限制,但应该足够正常使用了。
  后记:
  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.如果把开放的api嵌入到自己的网站中,一般做法是:在分享微博按钮(第三方登录按钮)上,发送微博授权认证,用户点击授权后网页,后台获取code,根据code获取token。之后,如果需要提取微博的用户名,可以直接在后台发送请求。如果分享到微博,也可以通过api来完成。
  如果以后在实践中用到这些功能,做个记录,本文到此结束。
  来自 Wiz 笔记 (Wiz)

使用新浪微博开放平台api同步微博内容至自己网站(新浪微博OAuth认证流程)

网站优化优采云 发表了文章 • 0 个评论 • 72 次浏览 • 2022-03-06 17:15 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博OAuth认证流程)
  很多网站都有第三方账号登录的功能(现在基本是通过OAuth2.0实现的),如果你自己的网站或者项目想要实现这样的功能,那就是其实很简单。以下是新浪微博提供的开放API的说明。
  1、去微博开放平台申请appkey和appsecret,填写各类信息
  2、程序开发
  新浪微博开放平台提供SDK下载,我们可以在里面使用现成的新浪微博OAuth认证类,类名为SaeTOAuthV2。
  我提供了一个现成的下载,里面不仅收录了SaeTOAuthV2类,还为新浪微博的各种接口封装了一个操作类SaeTClientV2。其实我们不需要它,或者我们可以根据它提供的API来构建它。自己的班级。(我使用的是php语言)
  1)新浪微博OAuth认证流程的第一步是引导用户进入新浪微博OAuth认证页面,所以我们需要获取这个页面的url。
  
  再说说$callback_url,意思是新浪会在认证后跳转到你指定的url页面,你可以在这个页面上处理认证的结果。另外,我们一般使用代码进行认证,就是getAuthorizeURL函数的第二个参数。其他认证方式可以参考新浪的文档。
  2)第二步,在回调页面$callback_url上处理认证结果。
  当用户登录并授权新浪微博OAuth认证页面时,会跳转到我们指定$callback_url的页面,在这个页面的url中会有一个code参数。这个参数是新浪给我们的。我们正在使用此代码参数的值来获取 access_token 令牌。
  
  注意我们得到的$token是一个数组,而$token['access_token']是真正的access_token令牌,我们可以把它存放在session等中以备日后调用。
  3) 第三步,通过access_token令牌,我们可以访问新浪微博提供的各种API接口。
  
  至于返回哪些api以及返回的结果,可以参考新浪的api文档,里面返回的是json数据。
  获取access_token令牌意味着我们可以通过api获取新浪微博用户的相关信息。利用这些信息,我们可以开发登录功能,比如绑定账号等。
  嗯,就是这么简单,一旦流程清晰,一切都会变得简单。 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博OAuth认证流程)
  很多网站都有第三方账号登录的功能(现在基本是通过OAuth2.0实现的),如果你自己的网站或者项目想要实现这样的功能,那就是其实很简单。以下是新浪微博提供的开放API的说明。
  1、去微博开放平台申请appkey和appsecret,填写各类信息
  2、程序开发
  新浪微博开放平台提供SDK下载,我们可以在里面使用现成的新浪微博OAuth认证类,类名为SaeTOAuthV2。
  我提供了一个现成的下载,里面不仅收录了SaeTOAuthV2类,还为新浪微博的各种接口封装了一个操作类SaeTClientV2。其实我们不需要它,或者我们可以根据它提供的API来构建它。自己的班级。(我使用的是php语言)
  1)新浪微博OAuth认证流程的第一步是引导用户进入新浪微博OAuth认证页面,所以我们需要获取这个页面的url。
  
  再说说$callback_url,意思是新浪会在认证后跳转到你指定的url页面,你可以在这个页面上处理认证的结果。另外,我们一般使用代码进行认证,就是getAuthorizeURL函数的第二个参数。其他认证方式可以参考新浪的文档。
  2)第二步,在回调页面$callback_url上处理认证结果。
  当用户登录并授权新浪微博OAuth认证页面时,会跳转到我们指定$callback_url的页面,在这个页面的url中会有一个code参数。这个参数是新浪给我们的。我们正在使用此代码参数的值来获取 access_token 令牌。
  
  注意我们得到的$token是一个数组,而$token['access_token']是真正的access_token令牌,我们可以把它存放在session等中以备日后调用。
  3) 第三步,通过access_token令牌,我们可以访问新浪微博提供的各种API接口。
  
  至于返回哪些api以及返回的结果,可以参考新浪的api文档,里面返回的是json数据。
  获取access_token令牌意味着我们可以通过api获取新浪微博用户的相关信息。利用这些信息,我们可以开发登录功能,比如绑定账号等。
  嗯,就是这么简单,一旦流程清晰,一切都会变得简单。

使用新浪微博开放平台api同步微博内容至自己网站(腾讯微博开放平台正式上线,为开发者和用户提供开放数据分享与传播平台)

网站优化优采云 发表了文章 • 0 个评论 • 56 次浏览 • 2022-03-06 03:22 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(腾讯微博开放平台正式上线,为开发者和用户提供开放数据分享与传播平台)
  12月16日,腾讯微博开放平台正式上线。基于腾讯微博系统,为开发者和用户提供一个开放的数据共享和传播平台。广大开发者和用户登录平台后,可以利用平台提供的开放API接口创建应用程序,从微博系统中获取信息,或者向整个微博系统传播新的信息。就在几天前,新浪微博创新基金刚刚开始接受申请,主要面向新浪微博应用的创业者。由此可以看出,国内微博应用市场正在逐渐竞争,竞争也越来越激烈。
  据腾讯微博开放平台网站介绍,该开放平台基于腾讯微博系统,定位为开放数据共享传播平台。登录平台创建应用后,您可以通过从平台获取的应用App Key和App Secret,使用各种AP​​I实现丰富的应用功能。应用依赖用户账号访问其微博账号读写内容,首次使用时需要用户授权,系统授权使用Oauth机制。获得用户授权后,应用可以获取当前用户的用户名、头像图片、当前用户的听众和收听名单等信息,
  获得用户账号授权后,可以使用平台提供的API创建以下功能:
  快速分享内容到微博。腾讯微博用户关系开放,互动性强。通过用户之间的交互和传播,信息可以呈几何级数传播。传播的内容也会在微博网站上展示,用户点击链接后可以直接进入指定页面,起到为网站吸引流量的作用。基于微博互动建立用户关系。通过向用户展示最新的微博信息,并提供即时收听功能,帮助用户建立互动关系。平台提供的微博秀应用程序让您只需几行 HTML 代码,即可在 网站 上显示您的新微博更新。获取微博信息作为内容。您可以获取整个微博平台的最新微博信息,或者指定用户发布/收听的微博信息,并作为内容展示在您的网站/软件中。腾讯微博有很多名人和专业人士活跃,最新最真实的新闻可以作为内容。
  开发者构建微博应用后,可以将应用源字段提交给腾讯审核。应用提交审核通过后,应用发送的微博信息会在腾讯微博等应用中显示,并带有应用的来源字段和来源URL信息。当用户点击时,会打开网站,为网站带来流量。
  源字段的审计内容包括:
  来源字段 - 我们要从您的应用发布,来源名称“来自 ***” 来源链接显示在腾讯微博和其他微博 - 我们希望来自腾讯微博或其他微博的用户,点击时打开的网页的 URL
  查看源字段的提交标准:
  创建时间超过15天。接口调用累计超过10000次。用户授权数超过100。
  腾讯微博开放平台还提供了一些官方微博应用供开发者学习和使用,包括:
  一键直播——将一键直播嵌入到您的网站中,访问者可以直接将网页信息传播到腾讯微博。在分享信息的同时,用户可以通过源链接进入你的网站,从而增加流量。微博秀 - 使用微博秀,将生成的代码放在您的博客、网站 或其他支持html代码的位置,您可以向网络访问者展示您在腾讯微博上的最新广播和视频。观众。微博广播站 - 使用微博广播站,将生成的代码放在你的博客、网站或其他支持html代码的位置,不仅可以显示你最近的20条广播,登录腾讯微博后,你还可以也直接在这里写微博,让更多的人知道和倾听你。
  对于应用开发者最关心的开发平台API,详细说明见网站:
  API 文档 - 提供 API 接口 url、格式、http 请求方法等 Oauth 授权说明 - 介绍 Oauth 认证机制和请求授权方法 API 调用权限 - 说明不同权限的开发者可以调用的 API 范围,以及调用频率通话限制
  其中,值得关注的是开放平台对API读写频率的要求:
  一级授权
  读取请求:每个 API 单用户每小时 150 次(包括获取公共时间线、主页时间线等)
  写入请求:不可用中间授权读取请求:每个用户每小时每个 API 150
  写请求:每个用户每小时最多100次(包括推文、转播、对话、私信、收听等) 腾讯合作伙伴授权的读取请求:每个API单用户每小时5000次
  写请求:每个用户每小时最多400次(包括推特、转播、对话、私信、收听等)
  如果开发者认为 API 调用次数不够,腾讯对此进行了解释:
  首先,微博API技术是一种HTTP轮询(POLLING)协议,而不是通过实时推送获取信息。为了保证用户能够获取到最新的微博信息,需要调用API定时阅读。根据实际微博信息更新统计,建议阅读频率控制在1分钟/次以上,或者通过:
  如果用户数量过多,当前对 API 调用频率的限制是不够的。在您的申请数据达到相应标准后,您可以通过电子邮件申请更高级别的通话权限。审核通过后,官方会进行调整。您可以查看应用程序当前的API调用权限级别。
  微博应用市场近期火爆。就在几天前,InfoQ 中文站刚刚报道了新浪微博开发者创新基金向微博应用创业者敞开大门:
  2亿元规模的中国微博开发者创新基金正式开始接受申请,为中国的中小型创业公司或个人创业者提供一个施展才华的平台……(基金)旨在聚焦新浪微博平台 公司第三方应用开​​发者提供风险投资,同时为开发者提供必要的创业相关指导,帮助开发者加速实现创业梦想。基金投资项目的单笔投资金额主要在300万以下,但对较高的投资金额没有限制。应用开发项目要求为:已在新浪微博开放平台申请APP密钥的开发者,
  由此可见,随着微博的火爆,互联网企业开始关注这个市场,鼓励第三方开发和部署微博应用。一方面可以增加自己微博的知名度,另一方面可以将自己的微博分享给第三方。博市有望盈利“蛋糕”。无论是腾讯微博开放平台还是新浪微博创新基金,都是微博应用开发者迎来大发展的好机会。InfoQ中文站也将继续关注相关动态。 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(腾讯微博开放平台正式上线,为开发者和用户提供开放数据分享与传播平台)
  12月16日,腾讯微博开放平台正式上线。基于腾讯微博系统,为开发者和用户提供一个开放的数据共享和传播平台。广大开发者和用户登录平台后,可以利用平台提供的开放API接口创建应用程序,从微博系统中获取信息,或者向整个微博系统传播新的信息。就在几天前,新浪微博创新基金刚刚开始接受申请,主要面向新浪微博应用的创业者。由此可以看出,国内微博应用市场正在逐渐竞争,竞争也越来越激烈。
  据腾讯微博开放平台网站介绍,该开放平台基于腾讯微博系统,定位为开放数据共享传播平台。登录平台创建应用后,您可以通过从平台获取的应用App Key和App Secret,使用各种AP​​I实现丰富的应用功能。应用依赖用户账号访问其微博账号读写内容,首次使用时需要用户授权,系统授权使用Oauth机制。获得用户授权后,应用可以获取当前用户的用户名、头像图片、当前用户的听众和收听名单等信息,
  获得用户账号授权后,可以使用平台提供的API创建以下功能:
  快速分享内容到微博。腾讯微博用户关系开放,互动性强。通过用户之间的交互和传播,信息可以呈几何级数传播。传播的内容也会在微博网站上展示,用户点击链接后可以直接进入指定页面,起到为网站吸引流量的作用。基于微博互动建立用户关系。通过向用户展示最新的微博信息,并提供即时收听功能,帮助用户建立互动关系。平台提供的微博秀应用程序让您只需几行 HTML 代码,即可在 网站 上显示您的新微博更新。获取微博信息作为内容。您可以获取整个微博平台的最新微博信息,或者指定用户发布/收听的微博信息,并作为内容展示在您的网站/软件中。腾讯微博有很多名人和专业人士活跃,最新最真实的新闻可以作为内容。
  开发者构建微博应用后,可以将应用源字段提交给腾讯审核。应用提交审核通过后,应用发送的微博信息会在腾讯微博等应用中显示,并带有应用的来源字段和来源URL信息。当用户点击时,会打开网站,为网站带来流量。
  源字段的审计内容包括:
  来源字段 - 我们要从您的应用发布,来源名称“来自 ***” 来源链接显示在腾讯微博和其他微博 - 我们希望来自腾讯微博或其他微博的用户,点击时打开的网页的 URL
  查看源字段的提交标准:
  创建时间超过15天。接口调用累计超过10000次。用户授权数超过100。
  腾讯微博开放平台还提供了一些官方微博应用供开发者学习和使用,包括:
  一键直播——将一键直播嵌入到您的网站中,访问者可以直接将网页信息传播到腾讯微博。在分享信息的同时,用户可以通过源链接进入你的网站,从而增加流量。微博秀 - 使用微博秀,将生成的代码放在您的博客、网站 或其他支持html代码的位置,您可以向网络访问者展示您在腾讯微博上的最新广播和视频。观众。微博广播站 - 使用微博广播站,将生成的代码放在你的博客、网站或其他支持html代码的位置,不仅可以显示你最近的20条广播,登录腾讯微博后,你还可以也直接在这里写微博,让更多的人知道和倾听你。
  对于应用开发者最关心的开发平台API,详细说明见网站:
  API 文档 - 提供 API 接口 url、格式、http 请求方法等 Oauth 授权说明 - 介绍 Oauth 认证机制和请求授权方法 API 调用权限 - 说明不同权限的开发者可以调用的 API 范围,以及调用频率通话限制
  其中,值得关注的是开放平台对API读写频率的要求:
  一级授权
  读取请求:每个 API 单用户每小时 150 次(包括获取公共时间线、主页时间线等)
  写入请求:不可用中间授权读取请求:每个用户每小时每个 API 150
  写请求:每个用户每小时最多100次(包括推文、转播、对话、私信、收听等) 腾讯合作伙伴授权的读取请求:每个API单用户每小时5000次
  写请求:每个用户每小时最多400次(包括推特、转播、对话、私信、收听等)
  如果开发者认为 API 调用次数不够,腾讯对此进行了解释:
  首先,微博API技术是一种HTTP轮询(POLLING)协议,而不是通过实时推送获取信息。为了保证用户能够获取到最新的微博信息,需要调用API定时阅读。根据实际微博信息更新统计,建议阅读频率控制在1分钟/次以上,或者通过:
  如果用户数量过多,当前对 API 调用频率的限制是不够的。在您的申请数据达到相应标准后,您可以通过电子邮件申请更高级别的通话权限。审核通过后,官方会进行调整。您可以查看应用程序当前的API调用权限级别。
  微博应用市场近期火爆。就在几天前,InfoQ 中文站刚刚报道了新浪微博开发者创新基金向微博应用创业者敞开大门:
  2亿元规模的中国微博开发者创新基金正式开始接受申请,为中国的中小型创业公司或个人创业者提供一个施展才华的平台……(基金)旨在聚焦新浪微博平台 公司第三方应用开​​发者提供风险投资,同时为开发者提供必要的创业相关指导,帮助开发者加速实现创业梦想。基金投资项目的单笔投资金额主要在300万以下,但对较高的投资金额没有限制。应用开发项目要求为:已在新浪微博开放平台申请APP密钥的开发者,
  由此可见,随着微博的火爆,互联网企业开始关注这个市场,鼓励第三方开发和部署微博应用。一方面可以增加自己微博的知名度,另一方面可以将自己的微博分享给第三方。博市有望盈利“蛋糕”。无论是腾讯微博开放平台还是新浪微博创新基金,都是微博应用开发者迎来大发展的好机会。InfoQ中文站也将继续关注相关动态。

使用新浪微博开放平台api同步微博内容至自己网站(联合第三方平台登录接入,初次接触开放平台和AppSecret5 )

网站优化优采云 发表了文章 • 0 个评论 • 42 次浏览 • 2022-03-21 07:23 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(联合第三方平台登录接入,初次接触开放平台和AppSecret5
)
  最近做了一个关于联合第三方平台的登录访问,第一次接触到开放平台,在这里做个笔记。
  开发前的准备工作如下:
  1、注册新浪微博
  2、访问新浪微博开发平台。如果是企业,申请企业准入并提交相关材料进行审核;如果是个人开发者,请申请个人开发者申请。我们以开发者为例
  3、 使用新浪微博开放API,需要向新浪申请一个appkey和一个App Secret。这些是入口。您必须先获得这两个,然后才能访问下一个作品。
  4、输入完善个人信息后,必须完成身份验证审核。审核完成后,新浪开放平台会给appkey和App Secret
  5、接下来就是如何使用appkey和App Secret了。您需要在开放平台下载文档或演示代码。其实提供的文档基本上都是技术文档,很多东西都没有解释清楚。还是会有很多麻烦
  6、新浪开放平台提供了很多不同开发语言的SDK,这里我选择java SDK,下载一个zip文件(包括新接口和OAuth2.0),解压后即可可以直接导入go到eclipse,结构如下,包括weibo4j源码和示例代码
  
  这里是一个config配置文件,打开如下:
  
  我们之前申请的appkey和App Secret就派上用场了。这里的client_ID为appkey,client_SERCRET为App Secret,填写对应内容,redirect_URI为回调地址。
  点击“第三方”-》跳转微博登录-》登录ok,授权-》回调自己的应用,这里是回调地址的意思。
  7、开始运行测试程序,测试程序在example下,包weibo4j.examples.oauth2下的类OAuth4Code,这里我们需要做一些修改,修改程序在
  oauth.authorize("code", args[0], args[1]),把这一段改成oauth.authorize("code","","all"),至于为什么改这个,请看界面此处的文档 oauth.authorize 使用说明
  假设我们这里没有回调地址,配置文件中的redirect_URI为空。运行后会自动打开浏览器运行测试,显示如下:
  
  此时的URL地址为:
  这里显示我的 appkey 和 App Secret 是有效的。由于我们尚未创建官方应用程序,新浪无法识别我的来源。
  8、在开放平台上创建应用,如下图
  
  这里有三种类型的应用程序,网站 访问、站内应用程序和移动应用程序。如果是企业行为,有公有域名可以访问,应用通过域名访问。这里可以用任何方法,但是如果我们只是一个简单的开发者,没有公网域名,比如内网模式,ip以内网地址192.168.开头1.*,本地127.0.0.1等,这里只能选择创建站内应用,填写如下
  
  这里红框标注的地方就是回调地址。如果我没有公网ip和域名的话,我在局域网玩的时候随便填,但是不能用localhost代替127.0.0.1,这里是按照配置要求做的,这个配置的要求很严格,
  尤其是下面的应用图标比较麻烦。完成后,您可以提交它们以供审核。
  9、提交审核后,新浪开放平台会在1天左右第一时间向您的邮箱发送邮件通知您审核结果,但无论审核结果是否失败,关键是提交审核。没有审核成功,这里可以照常使用
  
  10、完成测试项目中的配置文件redirect_URI,必须和创建应用时填写的【应用实际地址】一致,这个就是回调地址!完成配置后,再次运行OAuth4Code.java,如图
  
  在这里你会跳转到新浪微博的登录页面。登录新浪微博账号后,需要点击授权,表示平台可以访问您的微博账号相关内容分享您的信息等。授权结束后,
  将返回一个代码。这段代码非常重要。它是我们整个访问第三方平台的门钥匙。通过这段代码,我们可以获取到用户的access_token、UID等内容,相当于整个访问过程。
  11、调用新浪微博开放API
  这里我们需要研究这些API来满足访问的需要。首先要熟悉的是OAuth2.0授权接口,网上可以查到,如下:
  
  12、通过servlet程序调用开放API获取新浪微博的UID和微博名的示例
  
  response.setContentType("text/html;charset=UTF-8");
String accessToken = null ;
String uid = null ;
String screenName = null ;
String username = null ;
AccessToken accessTokenObj = null ;
Oauth oauth2 = new Oauth();
try {
out = response.getWriter();
accessTokenObj = oauth2.getAccessTokenByCode(code) ;
logger.info(accessTokenObj);
accessToken = accessTokenObj.getAccessToken() ;
oauth2.setToken(accessToken) ;
Account account = new Account() ;
account.client.setToken(accessToken) ;
JSONObject uidJson = account.getUid() ;
uid = uidJson.getString("uid") ;

Users users = new Users() ;
users.client.setToken(accessToken) ;
User weiboUser = users.showUserById(uid) ;
username = weiboUser.getName() ;
screenName = weiboUser.getScreenName() ;


} catch (WeiboException | IOException | JSONException e) {
e.printStackTrace();
}
out.println("微博访问Token_Info:" + accessTokenObj + "\t");
out.println("微博访问Token:" + accessToken + "\t");
out.println("微博用户-Uid:" + uid + "\t");
out.println("微博用户-名称:" + screenName + "\t");
out.flush();
out.close();*/
   查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(联合第三方平台登录接入,初次接触开放平台和AppSecret5
)
  最近做了一个关于联合第三方平台的登录访问,第一次接触到开放平台,在这里做个笔记。
  开发前的准备工作如下:
  1、注册新浪微博
  2、访问新浪微博开发平台。如果是企业,申请企业准入并提交相关材料进行审核;如果是个人开发者,请申请个人开发者申请。我们以开发者为例
  3、 使用新浪微博开放API,需要向新浪申请一个appkey和一个App Secret。这些是入口。您必须先获得这两个,然后才能访问下一个作品。
  4、输入完善个人信息后,必须完成身份验证审核。审核完成后,新浪开放平台会给appkey和App Secret
  5、接下来就是如何使用appkey和App Secret了。您需要在开放平台下载文档或演示代码。其实提供的文档基本上都是技术文档,很多东西都没有解释清楚。还是会有很多麻烦
  6、新浪开放平台提供了很多不同开发语言的SDK,这里我选择java SDK,下载一个zip文件(包括新接口和OAuth2.0),解压后即可可以直接导入go到eclipse,结构如下,包括weibo4j源码和示例代码
  
  这里是一个config配置文件,打开如下:
  
  我们之前申请的appkey和App Secret就派上用场了。这里的client_ID为appkey,client_SERCRET为App Secret,填写对应内容,redirect_URI为回调地址。
  点击“第三方”-》跳转微博登录-》登录ok,授权-》回调自己的应用,这里是回调地址的意思。
  7、开始运行测试程序,测试程序在example下,包weibo4j.examples.oauth2下的类OAuth4Code,这里我们需要做一些修改,修改程序在
  oauth.authorize("code", args[0], args[1]),把这一段改成oauth.authorize("code","","all"),至于为什么改这个,请看界面此处的文档 oauth.authorize 使用说明
  假设我们这里没有回调地址,配置文件中的redirect_URI为空。运行后会自动打开浏览器运行测试,显示如下:
  
  此时的URL地址为:
  这里显示我的 appkey 和 App Secret 是有效的。由于我们尚未创建官方应用程序,新浪无法识别我的来源。
  8、在开放平台上创建应用,如下图
  
  这里有三种类型的应用程序,网站 访问、站内应用程序和移动应用程序。如果是企业行为,有公有域名可以访问,应用通过域名访问。这里可以用任何方法,但是如果我们只是一个简单的开发者,没有公网域名,比如内网模式,ip以内网地址192.168.开头1.*,本地127.0.0.1等,这里只能选择创建站内应用,填写如下
  
  这里红框标注的地方就是回调地址。如果我没有公网ip和域名的话,我在局域网玩的时候随便填,但是不能用localhost代替127.0.0.1,这里是按照配置要求做的,这个配置的要求很严格,
  尤其是下面的应用图标比较麻烦。完成后,您可以提交它们以供审核。
  9、提交审核后,新浪开放平台会在1天左右第一时间向您的邮箱发送邮件通知您审核结果,但无论审核结果是否失败,关键是提交审核。没有审核成功,这里可以照常使用
  
  10、完成测试项目中的配置文件redirect_URI,必须和创建应用时填写的【应用实际地址】一致,这个就是回调地址!完成配置后,再次运行OAuth4Code.java,如图
  
  在这里你会跳转到新浪微博的登录页面。登录新浪微博账号后,需要点击授权,表示平台可以访问您的微博账号相关内容分享您的信息等。授权结束后,
  将返回一个代码。这段代码非常重要。它是我们整个访问第三方平台的门钥匙。通过这段代码,我们可以获取到用户的access_token、UID等内容,相当于整个访问过程。
  11、调用新浪微博开放API
  这里我们需要研究这些API来满足访问的需要。首先要熟悉的是OAuth2.0授权接口,网上可以查到,如下:
  
  12、通过servlet程序调用开放API获取新浪微博的UID和微博名的示例
  
  response.setContentType("text/html;charset=UTF-8");
String accessToken = null ;
String uid = null ;
String screenName = null ;
String username = null ;
AccessToken accessTokenObj = null ;
Oauth oauth2 = new Oauth();
try {
out = response.getWriter();
accessTokenObj = oauth2.getAccessTokenByCode(code) ;
logger.info(accessTokenObj);
accessToken = accessTokenObj.getAccessToken() ;
oauth2.setToken(accessToken) ;
Account account = new Account() ;
account.client.setToken(accessToken) ;
JSONObject uidJson = account.getUid() ;
uid = uidJson.getString("uid") ;

Users users = new Users() ;
users.client.setToken(accessToken) ;
User weiboUser = users.showUserById(uid) ;
username = weiboUser.getName() ;
screenName = weiboUser.getScreenName() ;


} catch (WeiboException | IOException | JSONException e) {
e.printStackTrace();
}
out.println("微博访问Token_Info:" + accessTokenObj + "\t");
out.println("微博访问Token:" + accessToken + "\t");
out.println("微博用户-Uid:" + uid + "\t");
out.println("微博用户-名称:" + screenName + "\t");
out.flush();
out.close();*/
  

使用新浪微博开放平台api同步微博内容至自己网站(新浪微博API新特点与百度地图API相比,我理解)

网站优化优采云 发表了文章 • 0 个评论 • 64 次浏览 • 2022-03-19 00:04 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博API新特点与百度地图API相比,我理解)
  查看 API 使用流程
  通过百度地图API的使用,了解到API调用的大致流程是:生成API指定格式的url-&gt;通过urllib读取url中的数据-&gt;解析json格式的数据。接下来开始研究新浪微博API的使用。
  准备
  新浪微博开放平台是使用新浪微博API的平台。使用微博账号登录平台后,即可申请成为开发者,创建新应用后将获得唯一的App Key和App Secret。(注:申请不需要提交审核,只要创建一个新的申请,就会分配Key和Secret。)这两个信息也可以在“我的申请/申请信息/基本信息”中找到. 该页面还有“我的申请/申请信息/高级信息”项,点击进入并设置OAuth2.0授权回调页面的相关信息。如果不知道填什么,可以设置为默认回调Page:。后面需要这三个信息,
  微博API新功能
  新浪微博API与百度地图API相比,增加了OAuth2.0协议进行用户认证和授权。这里只是简单说明一下(有兴趣的同学可以参考网上文档示意图):通过该协议,第三方应用可以获取用户授权,然后使用该License从授权服务器获取token,用于来自 API 服务器的后续查询 验证数据时。
  这个验证过程增加了 url 生成的复杂性。好在网站上已经有廖雪峰老师提供的SDK工具包:sinaweibopy(廖老师的github地址好像改名了,网上很多旧链接都失效了,这是新的有效链接),但是这个程序是基于python2环境编写的,python3的一些系统库已经改了,程序调用的时候经常报错。作为一个python初学者,重写程序以适应python3环境无疑是困难的。幸运的是,有一位大神完成了这项工作。感谢 owolf 为 python3 重写的 SDK:sinweibopy3。我用过,运行正常。你可以下载它。在这里,我也推荐一下owolf的文章
  简单的例子
  介绍一下新浪微博API的使用过程,为新生提供参考。
  1.参数设置
  import sinaweibopy3
import webbrowser
import json
APP_KEY =&#39; 填入你的App Key&#39;
APP_SECRET=&#39; 填入你的App Secret&#39;
REDIRECT_URL =&#39; 填入你的授权回调页&#39;
  笔记:
  这里说一下我的粗心造成的一个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("please input code : "))
client.set_access_token(result.access_token, result.expires_in)
  注意:这是调用sinweibopy3实现用户授权-&gt;在OAuth2.0中获取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:")
for u in result["statuses"]:
print(u["user"]["screen_name"])
print(u["user"]["location"])
print(u["text"])
  先进的 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博API新特点与百度地图API相比,我理解)
  查看 API 使用流程
  通过百度地图API的使用,了解到API调用的大致流程是:生成API指定格式的url-&gt;通过urllib读取url中的数据-&gt;解析json格式的数据。接下来开始研究新浪微博API的使用。
  准备
  新浪微博开放平台是使用新浪微博API的平台。使用微博账号登录平台后,即可申请成为开发者,创建新应用后将获得唯一的App Key和App Secret。(注:申请不需要提交审核,只要创建一个新的申请,就会分配Key和Secret。)这两个信息也可以在“我的申请/申请信息/基本信息”中找到. 该页面还有“我的申请/申请信息/高级信息”项,点击进入并设置OAuth2.0授权回调页面的相关信息。如果不知道填什么,可以设置为默认回调Page:。后面需要这三个信息,
  微博API新功能
  新浪微博API与百度地图API相比,增加了OAuth2.0协议进行用户认证和授权。这里只是简单说明一下(有兴趣的同学可以参考网上文档示意图):通过该协议,第三方应用可以获取用户授权,然后使用该License从授权服务器获取token,用于来自 API 服务器的后续查询 验证数据时。
  这个验证过程增加了 url 生成的复杂性。好在网站上已经有廖雪峰老师提供的SDK工具包:sinaweibopy(廖老师的github地址好像改名了,网上很多旧链接都失效了,这是新的有效链接),但是这个程序是基于python2环境编写的,python3的一些系统库已经改了,程序调用的时候经常报错。作为一个python初学者,重写程序以适应python3环境无疑是困难的。幸运的是,有一位大神完成了这项工作。感谢 owolf 为 python3 重写的 SDK:sinweibopy3。我用过,运行正常。你可以下载它。在这里,我也推荐一下owolf的文章
  简单的例子
  介绍一下新浪微博API的使用过程,为新生提供参考。
  1.参数设置
  import sinaweibopy3
import webbrowser
import json
APP_KEY =&#39; 填入你的App Key&#39;
APP_SECRET=&#39; 填入你的App Secret&#39;
REDIRECT_URL =&#39; 填入你的授权回调页&#39;
  笔记:
  这里说一下我的粗心造成的一个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("please input code : "))
client.set_access_token(result.access_token, result.expires_in)
  注意:这是调用sinweibopy3实现用户授权-&gt;在OAuth2.0中获取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:")
for u in result["statuses"]:
print(u["user"]["screen_name"])
print(u["user"]["location"])
print(u["text"])
  先进的

使用新浪微博开放平台api同步微博内容至自己网站(Google+Hangout新功能曝光:屏幕共享、谷歌文档)

网站优化优采云 发表了文章 • 0 个评论 • 79 次浏览 • 2022-03-17 01:10 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(Google+Hangout新功能曝光:屏幕共享、谷歌文档)
  9月21日消息,据外媒报道,随着Google+正式向公众开放,谷歌今天在其官方博客中宣布了一系列新的Hangout功能,同时也为开发者开放了Hangouts API接口。
  
  大约一周前,媒体预测 Google+ 的 API 至少需要几个月的时间。然而,预测后的第二天,谷歌就招募了“值得信赖的”开发人员对 Google+ API 进行内部测试。谷歌当时不喜欢这个消息,并试图寻找告密者。然而,今天,这些 API 已被确认正式开放。
  据了解,Hangouts API 目前仅处于“开发者预览”阶段,产品尚未成熟,仅开放用于测试目的。这些新的 API 允许开发人员在环聊或 Google 的 Youtube 播放器等实时应用程序中创建自己的体验。Youtube 播放器使 Google+ 用户可以通过环聊功能同时观看视频节目。
  Google 今天还宣布了 Google+ Hangout 的新功能,例如屏幕共享、Google Docs 编辑和绘图,激励开发人员充分利用 Hangouts API 来开发更具创意的应用程序。
  API开放的消息已经在Google+官方博客上看到了。目前,API 开发的重点是共享公共信息,而不是访问用户的社交圈。API 的权限是“只读的”,但这对于喜欢 Google+ 的开发者来说已经足够了。
  Google+的核心是圈子,所以只有能访问朋友圈的API才是开发者真正期待的。但是,这样的 API 可能需要等待很长时间,因为它过于复杂并且涉及棘手的隐私问题。
  要使用这些 API,开发人员需要创建一个 Web 应用程序并在 Google 注册。开发者还需要指定允许加载应用程序的开发者,然后程序就可以像普通的 Web 应用程序一样运行,并且可以同步使用 API。通过为应用创建“共享状态”,用户可以即时获取参与共享者的状态信息。这包括多媒体播放 API 的状态信息,Hangout 参与者可以即时更新其他人的“静音”、“影评”等信息。
  至于 Hangouts,媒体对 Google+ Hangouts 的高度关注源于 Facebook 提供了许多类似的功能,这迫使 Google+ 的受欢迎程度下降。不难想象,谷歌肯定会推广新的环聊功能,并认为这是 Facebook 所没有的服务。虽然 Facebook 已经通过与 Skype 的集成来提供视频聊天,但它仅限于两个人,而不是一个群组。
  Hangouts 对开发者来说很有趣,开发者可以创建在线会议、网络播客、在线教程、在线游戏等应用程序,这些应用程序可能会成为那些付费应用程序的潜在替代品。
  谷歌工程师克里斯·查博特 (Chris Chabot) 在 Google+ 官方博客上写道,“这些 API 接口允许用户获取发布在 Google+ 上的公共信息,这对我们来说是一个开始。世界上没有好的东西。它建立在一个真空,现在我们有了这个基础,我们可以讨论如何让 Google+ 变得更好。” 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(Google+Hangout新功能曝光:屏幕共享、谷歌文档)
  9月21日消息,据外媒报道,随着Google+正式向公众开放,谷歌今天在其官方博客中宣布了一系列新的Hangout功能,同时也为开发者开放了Hangouts API接口。
  
  大约一周前,媒体预测 Google+ 的 API 至少需要几个月的时间。然而,预测后的第二天,谷歌就招募了“值得信赖的”开发人员对 Google+ API 进行内部测试。谷歌当时不喜欢这个消息,并试图寻找告密者。然而,今天,这些 API 已被确认正式开放。
  据了解,Hangouts API 目前仅处于“开发者预览”阶段,产品尚未成熟,仅开放用于测试目的。这些新的 API 允许开发人员在环聊或 Google 的 Youtube 播放器等实时应用程序中创建自己的体验。Youtube 播放器使 Google+ 用户可以通过环聊功能同时观看视频节目。
  Google 今天还宣布了 Google+ Hangout 的新功能,例如屏幕共享、Google Docs 编辑和绘图,激励开发人员充分利用 Hangouts API 来开发更具创意的应用程序。
  API开放的消息已经在Google+官方博客上看到了。目前,API 开发的重点是共享公共信息,而不是访问用户的社交圈。API 的权限是“只读的”,但这对于喜欢 Google+ 的开发者来说已经足够了。
  Google+的核心是圈子,所以只有能访问朋友圈的API才是开发者真正期待的。但是,这样的 API 可能需要等待很长时间,因为它过于复杂并且涉及棘手的隐私问题。
  要使用这些 API,开发人员需要创建一个 Web 应用程序并在 Google 注册。开发者还需要指定允许加载应用程序的开发者,然后程序就可以像普通的 Web 应用程序一样运行,并且可以同步使用 API。通过为应用创建“共享状态”,用户可以即时获取参与共享者的状态信息。这包括多媒体播放 API 的状态信息,Hangout 参与者可以即时更新其他人的“静音”、“影评”等信息。
  至于 Hangouts,媒体对 Google+ Hangouts 的高度关注源于 Facebook 提供了许多类似的功能,这迫使 Google+ 的受欢迎程度下降。不难想象,谷歌肯定会推广新的环聊功能,并认为这是 Facebook 所没有的服务。虽然 Facebook 已经通过与 Skype 的集成来提供视频聊天,但它仅限于两个人,而不是一个群组。
  Hangouts 对开发者来说很有趣,开发者可以创建在线会议、网络播客、在线教程、在线游戏等应用程序,这些应用程序可能会成为那些付费应用程序的潜在替代品。
  谷歌工程师克里斯·查博特 (Chris Chabot) 在 Google+ 官方博客上写道,“这些 API 接口允许用户获取发布在 Google+ 上的公共信息,这对我们来说是一个开始。世界上没有好的东西。它建立在一个真空,现在我们有了这个基础,我们可以讨论如何让 Google+ 变得更好。”

使用新浪微博开放平台api同步微博内容至自己网站(做微博树洞的几种方法和解决办法!(上))

网站优化优采云 发表了文章 • 0 个评论 • 60 次浏览 • 2022-03-17 00:04 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(做微博树洞的几种方法和解决办法!(上))
  最近一直在做微博树洞,大致的格局如下:
  在网站中提供两个函数:1.发送树洞状态;2. 显示树洞状态。
  1.毛树洞的状态:
  这个比较简单,调用微博API接口即可。(/状态/更新)
  我的做法是给用户提供一个表单,直接把表单提交给我网站,然后我网站调用API接口,这样可以避免ACCESS_TOKEN的泄露。也有缺点。当我的服务器发送时,在某个时间更多的用户可能会导致带宽不佳。毕竟,服务器需要同时请求数据和响应数据。但就目前用户数量不大,操作体验还是不错的。
  显示树洞的状态:
  最初的想法是在展示页面上直接通过服务器向微博API提交获取微博数据的请求,即用户每次访问该页面时,都会向微博API提交一个请求。这是最方便快捷的实现方式,当然也有明显的缺陷。
  展示页面是网站的首页,所以网站页面需要在生成页面前请求微博API。所以,首页打开速度会变得很慢,所以后台做了一些缓存工作。. 逻辑大概是这样的,把微博数据缓存在数据库里,只缓存几条,然后统计数据库的访问次数,每20次访问一次,删除原来的微博数据,重新恢复里面的内容微博缓存在数据库中。这样就不用每次都请求微博API了,请求次数减少了,也不容易被限制卡住。(计数阈值可以改变,可以根据不同的时间段进行不同的设置) 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(做微博树洞的几种方法和解决办法!(上))
  最近一直在做微博树洞,大致的格局如下:
  在网站中提供两个函数:1.发送树洞状态;2. 显示树洞状态。
  1.毛树洞的状态:
  这个比较简单,调用微博API接口即可。(/状态/更新)
  我的做法是给用户提供一个表单,直接把表单提交给我网站,然后我网站调用API接口,这样可以避免ACCESS_TOKEN的泄露。也有缺点。当我的服务器发送时,在某个时间更多的用户可能会导致带宽不佳。毕竟,服务器需要同时请求数据和响应数据。但就目前用户数量不大,操作体验还是不错的。
  显示树洞的状态:
  最初的想法是在展示页面上直接通过服务器向微博API提交获取微博数据的请求,即用户每次访问该页面时,都会向微博API提交一个请求。这是最方便快捷的实现方式,当然也有明显的缺陷。
  展示页面是网站的首页,所以网站页面需要在生成页面前请求微博API。所以,首页打开速度会变得很慢,所以后台做了一些缓存工作。. 逻辑大概是这样的,把微博数据缓存在数据库里,只缓存几条,然后统计数据库的访问次数,每20次访问一次,删除原来的微博数据,重新恢复里面的内容微博缓存在数据库中。这样就不用每次都请求微博API了,请求次数减少了,也不容易被限制卡住。(计数阈值可以改变,可以根据不同的时间段进行不同的设置)

使用新浪微博开放平台api同步微博内容至自己网站(就是.php新浪微博的操作类和认证类,就是SDK)

网站优化优采云 发表了文章 • 0 个评论 • 49 次浏览 • 2022-03-16 04:22 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(就是.php新浪微博的操作类和认证类,就是SDK)
  saetv2.ex.class.php 新浪微博的操作类和认证类是SDK,里面有很多注解可以作为API使用
  Weibolist.php 我们要实现的功能都在这个php页面中
  文件执行顺序为:index.php-&gt;callback.php—&gt;weibolist.php
  首先,在 index.php 中请求授权。跳转到callback.php后授权成功,然后进入weibolist.php进行相应的操作。
  在weibolist.php中会实例化一个“微博操作类”,然后可以进行一系列的方法调用。
  3、具体代码实现
  首先修改config.php中的配置信息,填写我们刚才记录的WB_AKEY和WB_SKEY,这里要特别注意WB_CALLBACK_URL回调页面地址的填写,HTTP不能省略,完整的URL需要填写
  其实一目了然,介绍配置文件、类库、实例化对象、传递参数、调用方法、返回值。
  例如:
  $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['token']['access_token'] );
  Saetv2.ex.class.php中有两个类:微博操作类SaeTClientV2,微博认证类SaeTOAuthV2。
  操作类实例化所需的参数($akey, $skey, $access_token),access_token需要从认证类中获取。只有获取到用户的access_token,我们才能对用户进行操作。
  在回调.php 中:
  setcookie( 'weibojs_'.$o->client_id, http_build_query($token) );
  callback.php中获取的access_token存放在session中,创建微博操作类时可以使用。
  $ms = $c-&gt;home_timeline();
  打开类库文件找到home_timeline方法,获取当前登录用户及其关注用户的最新微博消息。API写得很清楚。如果你有更多的时间,你可以阅读源代码。
   1 /**
2 * 获取当前登录用户及其所关注用户的最新微博消息。
3 *
4 * 获取当前登录用户及其所关注用户的最新微博消息。和用户登录 http://weibo.com 后在“我的首页”中看到的内容相同。同friends_timeline()
5 * <br />对应API:{@link http://open.weibo.com/wiki/2/s ... eline statuses/home_timeline}
6 *
7 * @access public
8 * @param int $page 指定返回结果的页码。根据当前登录用户所关注的用户数及这些被关注用户发表的微博数,翻页功能最多能查看的总记录数会有所不同,通常最多能查看1000条左右。默认值1。可选。
9 * @param int $count 每次返回的记录数。缺省值50,最大值200。可选。
10 * @param int $since_id 若指定此参数,则只返回ID比since_id大的微博消息(即比since_id发表时间晚的微博消息)。可选。
11 * @param int $max_id 若指定此参数,则返回ID小于或等于max_id的微博消息。可选。
12 * @param int $base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0。
13 * @param int $feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
14 * @return array
15 */
16 function home_timeline( $page = 1, $count = 50, $since_id = 0, $max_id = 0, $base_app = 0, $feature = 0 )
17 {
18 $params = array();
19 if ($since_id) {
20 $this->id_format($since_id);
21 $params['since_id'] = $since_id;
22 }
23 if ($max_id) {
24 $this->id_format($max_id);
25 $params['max_id'] = $max_id;
26 }
27 $params['count'] = intval($count);
28 $params['page'] = intval($page);
29 $params['base_app'] = intval($base_app);
30 $params['feature'] = intval($feature);
31
32 return $this->oauth->get('statuses/home_timeline', $params);
33 }
  很简单,对吧?想办法尝试一下。
  写个表格发个微博试试
  
  
  
哈哈,是不是很简单呢?
再试试获取关注人ID
   1 /**
2 * 获取用户的双向关注uid列表
3 *
4 * 对应API:{@link http://open.weibo.com/wiki/2/f ... l/ids friendships/friends/bilateral/ids}
5 *
6 * @param int $uid 需要获取双向关注列表的用户UID。
7 * @param int $count 单页返回的记录条数,默认为50。
8 * @param int $page 返回结果的页码,默认为1。
9 * @param int $sort 排序类型,0:按关注时间最近排序,默认为0。
10 * @return array
11 **/
12 function bilateral_ids( $uid, $page = 1, $count = 50, $sort = 0)
13 {
14 $params = array();
15 $params['uid'] = $uid;
16 $params['count'] = $count;
17 $params['page'] = $page;
18 $params['sort'] = $sort;
19 return $this->oauth->get( 'friendships/friends/bilateral/ids', $params );
20 }
   1
  打开得到如下数据:
  Array
(
[ids] => Array
(
[0] => 2365402665
[1] => 2874824370
[2] => 2458103930
[3] => 2631415422
[4] => 1726492234
[5] => 3307625345
[6] => 1748961617
[7] => 1898400044
[8] => 5074409657
[9] => 1459729954
[10] => 1960937255
[11] => 3002010437
[12] => 1840024911
[13] => 1933041827
[14] => 3544004403
[15] => 2218615153
[16] => 1710952872
[17] => 3296525792
[18] => 2023869922
[19] => 1136908732
[20] => 5142045518
[21] => 2113440863
[22] => 2882182570
[23] => 2750918083
[24] => 5047720995
[25] => 3237485452
[26] => 2301448374
[27] => 2241922934
[28] => 3194061564
[29] => 1516453591
[30] => 3046227467
[31] => 2990824405
[32] => 2901804343
[33] => 2062251914
[34] => 1846033411
[35] => 3024328843
[36] => 3989444339
[37] => 3937835581
[38] => 2951303393
[39] => 38376110
[40] => 2403647687
[41] => 2637451094
[42] => 2257435150
[43] => 2997619907
[44] => 2272664314
[45] => 1858542007
[46] => 3566646574
[47] => 3017416653
[48] => 2017817897
[49] => 3270778184
)
[total_number] => 198
)
  然后我们可以根据UID获取更多的信息,比如用户名、基本信息等。
  
  内容很多,就不一一展示了
  感兴趣的朋友可以看看saetv2.ex.class.php文件
  官网提供的API:%E5%BE%AE%E5%8D%9AAPI
  好了,到此结束,毕竟只是介绍
  有时间我会写一篇微博开放平台的入门应用介绍~见 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(就是.php新浪微博的操作类和认证类,就是SDK)
  saetv2.ex.class.php 新浪微博的操作类和认证类是SDK,里面有很多注解可以作为API使用
  Weibolist.php 我们要实现的功能都在这个php页面中
  文件执行顺序为:index.php-&gt;callback.php—&gt;weibolist.php
  首先,在 index.php 中请求授权。跳转到callback.php后授权成功,然后进入weibolist.php进行相应的操作。
  在weibolist.php中会实例化一个“微博操作类”,然后可以进行一系列的方法调用。
  3、具体代码实现
  首先修改config.php中的配置信息,填写我们刚才记录的WB_AKEY和WB_SKEY,这里要特别注意WB_CALLBACK_URL回调页面地址的填写,HTTP不能省略,完整的URL需要填写
  其实一目了然,介绍配置文件、类库、实例化对象、传递参数、调用方法、返回值。
  例如:
  $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['token']['access_token'] );
  Saetv2.ex.class.php中有两个类:微博操作类SaeTClientV2,微博认证类SaeTOAuthV2。
  操作类实例化所需的参数($akey, $skey, $access_token),access_token需要从认证类中获取。只有获取到用户的access_token,我们才能对用户进行操作。
  在回调.php 中:
  setcookie( 'weibojs_'.$o->client_id, http_build_query($token) );
  callback.php中获取的access_token存放在session中,创建微博操作类时可以使用。
  $ms = $c-&gt;home_timeline();
  打开类库文件找到home_timeline方法,获取当前登录用户及其关注用户的最新微博消息。API写得很清楚。如果你有更多的时间,你可以阅读源代码。
   1 /**
2 * 获取当前登录用户及其所关注用户的最新微博消息。
3 *
4 * 获取当前登录用户及其所关注用户的最新微博消息。和用户登录 http://weibo.com 后在“我的首页”中看到的内容相同。同friends_timeline()
5 * <br />对应API:{@link http://open.weibo.com/wiki/2/s ... eline statuses/home_timeline}
6 *
7 * @access public
8 * @param int $page 指定返回结果的页码。根据当前登录用户所关注的用户数及这些被关注用户发表的微博数,翻页功能最多能查看的总记录数会有所不同,通常最多能查看1000条左右。默认值1。可选。
9 * @param int $count 每次返回的记录数。缺省值50,最大值200。可选。
10 * @param int $since_id 若指定此参数,则只返回ID比since_id大的微博消息(即比since_id发表时间晚的微博消息)。可选。
11 * @param int $max_id 若指定此参数,则返回ID小于或等于max_id的微博消息。可选。
12 * @param int $base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0。
13 * @param int $feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
14 * @return array
15 */
16 function home_timeline( $page = 1, $count = 50, $since_id = 0, $max_id = 0, $base_app = 0, $feature = 0 )
17 {
18 $params = array();
19 if ($since_id) {
20 $this->id_format($since_id);
21 $params['since_id'] = $since_id;
22 }
23 if ($max_id) {
24 $this->id_format($max_id);
25 $params['max_id'] = $max_id;
26 }
27 $params['count'] = intval($count);
28 $params['page'] = intval($page);
29 $params['base_app'] = intval($base_app);
30 $params['feature'] = intval($feature);
31
32 return $this->oauth->get('statuses/home_timeline', $params);
33 }
  很简单,对吧?想办法尝试一下。
  写个表格发个微博试试
  
  
  
哈哈,是不是很简单呢?
再试试获取关注人ID
   1 /**
2 * 获取用户的双向关注uid列表
3 *
4 * 对应API:{@link http://open.weibo.com/wiki/2/f ... l/ids friendships/friends/bilateral/ids}
5 *
6 * @param int $uid 需要获取双向关注列表的用户UID。
7 * @param int $count 单页返回的记录条数,默认为50。
8 * @param int $page 返回结果的页码,默认为1。
9 * @param int $sort 排序类型,0:按关注时间最近排序,默认为0。
10 * @return array
11 **/
12 function bilateral_ids( $uid, $page = 1, $count = 50, $sort = 0)
13 {
14 $params = array();
15 $params['uid'] = $uid;
16 $params['count'] = $count;
17 $params['page'] = $page;
18 $params['sort'] = $sort;
19 return $this->oauth->get( 'friendships/friends/bilateral/ids', $params );
20 }
   1
  打开得到如下数据:
  Array
(
[ids] => Array
(
[0] => 2365402665
[1] => 2874824370
[2] => 2458103930
[3] => 2631415422
[4] => 1726492234
[5] => 3307625345
[6] => 1748961617
[7] => 1898400044
[8] => 5074409657
[9] => 1459729954
[10] => 1960937255
[11] => 3002010437
[12] => 1840024911
[13] => 1933041827
[14] => 3544004403
[15] => 2218615153
[16] => 1710952872
[17] => 3296525792
[18] => 2023869922
[19] => 1136908732
[20] => 5142045518
[21] => 2113440863
[22] => 2882182570
[23] => 2750918083
[24] => 5047720995
[25] => 3237485452
[26] => 2301448374
[27] => 2241922934
[28] => 3194061564
[29] => 1516453591
[30] => 3046227467
[31] => 2990824405
[32] => 2901804343
[33] => 2062251914
[34] => 1846033411
[35] => 3024328843
[36] => 3989444339
[37] => 3937835581
[38] => 2951303393
[39] => 38376110
[40] => 2403647687
[41] => 2637451094
[42] => 2257435150
[43] => 2997619907
[44] => 2272664314
[45] => 1858542007
[46] => 3566646574
[47] => 3017416653
[48] => 2017817897
[49] => 3270778184
)
[total_number] => 198
)
  然后我们可以根据UID获取更多的信息,比如用户名、基本信息等。
  
  内容很多,就不一一展示了
  感兴趣的朋友可以看看saetv2.ex.class.php文件
  官网提供的API:%E5%BE%AE%E5%8D%9AAPI
  好了,到此结束,毕竟只是介绍
  有时间我会写一篇微博开放平台的入门应用介绍~见

使用新浪微博开放平台api同步微博内容至自己网站(腾讯微博开放平台开发者服务协议如何开发微博应用?(图))

网站优化优采云 发表了文章 • 0 个评论 • 81 次浏览 • 2022-03-16 04:21 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(腾讯微博开放平台开发者服务协议如何开发微博应用?(图))
  腾讯微博开放平台API开放。使用腾讯微博开放平台提供的API创建自己的应用,需要先填写个人信息,验证邮箱,取得开发者资质,然后才能创建自己的应用。腾讯微博开放平台是基于腾讯微博系统的面向开发者和用户的开放数据共享和传播平台。广大开发者和用户登录平台后,可以利用平台提供的开放API接口创建应用程序,从微博系统中获取信息,或者向整个微博系统传播新的信息。用你的智慧,将创造出无穷无尽的应用和乐趣。
  平台使用说明:
  腾讯微博开放平台是基于腾讯微博系统的面向开发者和用户的开放数据共享和传播平台。广大开发者和用户登录平台后,可以利用平台提供的开放API接口创建应用程序,从微博系统中获取信息,或者向整个微博系统传播新的信息。依靠您的智慧,将创造出无穷无尽的应用和乐趣!
  平台介绍——微博开放平台可以获得的资源和优势
  应用程序开发说明 - 解释如何成为开发人员并创建应用程序
  应用审核流程 - 审核应用源字段的好处以及如何审核
  开发者协议——查看腾讯微博开放平台开发者服务协议
  如何开发微博应用?(现在成为开发人员)
  您只需要按照以下步骤操作:
  第一步:填写你的开发者信息;
  第二步:验证联系邮箱;(邮箱将作为我们联系您的重要方式,请提供常用邮箱)
  第三步:填写要创建的应用信息。
  您可以立即获取微博App Key和App Secret,并调用微博API进行应用开发。查看详细说明
  ----
  腾讯,代表中国最先进的互联网技术,终于迈出了开放的第一步:-) 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(腾讯微博开放平台开发者服务协议如何开发微博应用?(图))
  腾讯微博开放平台API开放。使用腾讯微博开放平台提供的API创建自己的应用,需要先填写个人信息,验证邮箱,取得开发者资质,然后才能创建自己的应用。腾讯微博开放平台是基于腾讯微博系统的面向开发者和用户的开放数据共享和传播平台。广大开发者和用户登录平台后,可以利用平台提供的开放API接口创建应用程序,从微博系统中获取信息,或者向整个微博系统传播新的信息。用你的智慧,将创造出无穷无尽的应用和乐趣。
  平台使用说明:
  腾讯微博开放平台是基于腾讯微博系统的面向开发者和用户的开放数据共享和传播平台。广大开发者和用户登录平台后,可以利用平台提供的开放API接口创建应用程序,从微博系统中获取信息,或者向整个微博系统传播新的信息。依靠您的智慧,将创造出无穷无尽的应用和乐趣!
  平台介绍——微博开放平台可以获得的资源和优势
  应用程序开发说明 - 解释如何成为开发人员并创建应用程序
  应用审核流程 - 审核应用源字段的好处以及如何审核
  开发者协议——查看腾讯微博开放平台开发者服务协议
  如何开发微博应用?(现在成为开发人员)
  您只需要按照以下步骤操作:
  第一步:填写你的开发者信息;
  第二步:验证联系邮箱;(邮箱将作为我们联系您的重要方式,请提供常用邮箱)
  第三步:填写要创建的应用信息。
  您可以立即获取微博App Key和App Secret,并调用微博API进行应用开发。查看详细说明
  ----
  腾讯,代表中国最先进的互联网技术,终于迈出了开放的第一步:-)

使用新浪微博开放平台api同步微博内容至自己网站(有时候整合新浪微博的独立博客是怎么做的??)

网站优化优采云 发表了文章 • 0 个评论 • 105 次浏览 • 2022-03-16 04:20 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(有时候整合新浪微博的独立博客是怎么做的??)
  随着新浪微博用户数量的增加,我们有时会考虑将新浪微博整合到我们的网站中。比如我现在的独立博客。
  我博客中的整合主要有以下几个方面:我写了一篇文章文章,会同步发到微博。同时,用户可以用自己的微博账号登录,可以选择将文章的评论同步到文章的微博。此外,用户可以选择是否将博客消息同步到新浪微博。
  新浪微博开放平台地址在这里。文档地址在这里。
  首先要涉及的问题是用户用自己的新浪微博账号登录的问题,也就是授权机制。有两种基本方法:
  OAuth Basic auth(需要强调的是,微博开放平台将于6月1日正式停止对Basic Auth的支持,所以这个方法不做讨论,其实需要用户名和密码的方法本身就是不安全的。)
  OAuth新浪官方文档在这里。想了解OAuth技术说明的可以访问项目主页。
  其实OAuth的过程还是很简单的。大致如下:
  调用 API 获取请求令牌。将用户重定向到授权页面(auth url)。用户输入用户名和密码完成授权。重定向到 Callback_url。向新浪微博交换请求令牌以获得访问令牌。结束。
  大致了解了OAuth的原理后,既然我们是集成到Django中,自然需要下载微博SDK的Python版本。
  不过,在这一切开始之前,您必须向新浪微博申请您的应用程序。申请地址在这里。这里需要强调的是,应用以后需要申请审核,因为只有审核通过后,才能在源中显示个性化的应用名称。因此,在申请时,要注意申请介绍信息的完整性和正确的申请分类。(在这个例子中,我们的分类是 Collaboration网站。)
  申请完成后,您将获得您的应用程序的 App Key 和 App Secret。
  回到授权用户登录的主题。要允许新浪微博帐号访问,首先我们需要在 urlpatterns 中添加几个 URL。如下:
  urlpatterns = patterns('projectname.appname.views', url(r'^log/$', 'login', name='log'), url(r'^logincheck/$', 'login_check', name='logcheck'), url(r'^logout/$', 'logout', name='logout'), )
  接下来,我们启动视图文件。代码:
  #!/usr/bin/env python # -*- coding: utf-8 -*- """ 基于django的新浪微博oauth views 需要django的session支持 """ from django.http import HttpResponseRedirect from weibopy.auth import OAuthHandler, WeibopError from weibopy import oauth consumer_key = '' # 设置你申请的appkey consumer_secret = '' # 设置你申请的appkey对于的secret class WebOAuthHandler(OAuthHandler): def get_authorization_url_with_callback(self, callback, signin_with_推ter=False): """Get the authorization URL to redirect the user""" try: # get the request token self.request_token = self._get_request_token() # build auth request and return as url if signin_with_推ter: url = self._get_oauth_url('authenticate') else: url = self._get_oauth_url('authorize') request = oauth.OAuthRequest.from_token_and_callback( token=self.request_token, callback=callback, http_url=url ) return request.to_url() except Exception, e: raise WeibopError(e) def _get_referer_url(request): referer_url = request.META.get('HTTP_REFERER', '/') host = request.META['HTTP_HOST'] if referer_url.startswith('http') and host not in referer_url: referer_url = '/' # 避免外站直接跳到登录页而发生跳转错误 return referer_url def _oauth(): """获取oauth认证类""" return WebOAuthHandler(consumer_key, consumer_secret) def login(request): # 保存最初的登录url,以便认证成功后跳转回来 back_to_url = _get_referer_url(request) request.session['login_back_to_url'] = back_to_url # 获取oauth认证url login_backurl = request.build_absolute_uri('/logincheck') auth_client = _oauth() auth_url = auth_client.get_authorization_url_with_callback(login_backurl) # 保存request_token,用户登录后需要使用它来获取access_token request.session['oauth_request_token'] = auth_client.request_token # 跳转到登录页面 return HttpResponseRedirect(auth_url) def login_check(request): """用户成功登录授权后,会回调此方法,获取access_token,完成授权""" # http://mk2.com/%3Foauth_token% ... 03896 verifier = request.GET.get('oauth_verifier', None) auth_client = _oauth() # 设置之前保存在session的request_token request_token = request.session['oauth_request_token'] del request.session['oauth_request_token'] auth_client.set_request_token(request_token.key, request_token.secret) access_token = auth_client.get_access_token(verifier) # 保存access_token,以后访问只需使用access_token即可 request.session['oauth_access_token'] = access_token # 跳转回最初登录前的页面 back_to_url = request.session.get('login_back_to_url', '/') return HttpResponseRedirect(back_to_url) def logout(request): """用户登出,直接删除access_token""" del request.session['oauth_access_token'] back_to_url = _get_referer_url(request) return HttpResponseRedirect(back_to_url)
  完成授权码之后,我们就需要知道怎么给新浪微博发消息了。其实下载的SDK下的exanples文件夹下的examples(是的,其实就是examples,这个英文水平不能抱怨),修改后直接使用即可。以 oauthSetTokenUpdate.py 为例,我们可以这样写:
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '应用的key' consumer_secret ='应用的App Secret' auth = OAuthHandler(consumer_key, consumer_secret) auth_url = auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() auth.get_access_token(verifier) api = API(auth) status = api.update_status(status='hello world', lat='12.3', long='45.6') # 注意status必须是UTF-8编码的字符串,经纬度是可以不写的 print status.id print status.text
  运行程序会提示一个 URL 链接,在浏览器中打开链接,并授予访问权限,你会得到一串 PIN 码。输入此 PIN 并发送推送,并且还将显示用户的访问令牌密钥和访问令牌密码。
  但是,这样做是不是有点太书呆子了?其实只要知道Access token key和Access token secret,我们就可以直接使用它们来创建API对象:
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '应用的key' consumer_secret ='应用的App Secret' token = '用户的Access token key' tokenSecret = '用户的Access token secret' auth = OAuthHandler(consumer_key, consumer_secret) auth.setToken(token, tokenSecret) api = API(auth) status = api.update_status(status='搞定收工~')
  这时候我们可以重构代码,写一个微博类来实现以上功能,实现一些api操作。
  class weibo(object): def __init__(self): self.consumer_key = consumer_key self.consumer_secret = consumer_secret def getAtt(self, key): try: return self.obj.__getattribute__(key) except Exception, e: print e return '' def getAttValue(self, obj, key): try: return obj.__getattribute__(key) except Exception, e: print e return '' def auth(self): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) auth_url = self.auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() self.auth.get_access_token(verifier) self.api = API(self.auth) def setToken(self, token, tokenSecret): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) self.auth.setToken(token, tokenSecret) self.api = API(self.auth) def update(self, message): message = message.encode("utf-8") status = self.api.update_status(status=message) self.obj = status id = self.getAtt("id") return id def destroy_status(self, id): status = self.api.destroy_status(id) self.obj = status id = self.getAtt("id") return id def comment(self, id, message): comment = self.api.comment(id=id, comment=message) self.obj = comment mid = self.getAtt("id") return mid def comment_destroy (self, mid): comment = self.api.comment_destroy(mid) self.obj = comment mid = self.getAtt("id") text = self.getAtt("text") return mid def repost(self, id, message): post = self.api.repost(id=id, status=message) self.obj = post mid = self.getAtt("id") return mid def get_username(self): if getattr(self, '_username', None) is None: self._username = self.auth.get_username() return self._username
  不知道读者是否还记得我们上面授权部分的代码。在login_check方法代码中,有这么一句话。
  request.session['oauth_access_token'] = access_token
  授权用户的 access_token 已存储在 session 变量中。因此,当用户授权完成后,我们可以直接使用 session 中存储的 access_token,如下所示:
  access_token = request.session.get('oauth_access_token', None) if access_token is not None: weibo_client = weibo() weibo_client.setToken(access_token.key, access_token.secret) weibo_client.update('全部完成~')
  上面的例子中只用到了一些 API,完整的 API 手册可以在这里找到。
  文章来源: 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(有时候整合新浪微博的独立博客是怎么做的??)
  随着新浪微博用户数量的增加,我们有时会考虑将新浪微博整合到我们的网站中。比如我现在的独立博客。
  我博客中的整合主要有以下几个方面:我写了一篇文章文章,会同步发到微博。同时,用户可以用自己的微博账号登录,可以选择将文章的评论同步到文章的微博。此外,用户可以选择是否将博客消息同步到新浪微博。
  新浪微博开放平台地址在这里。文档地址在这里。
  首先要涉及的问题是用户用自己的新浪微博账号登录的问题,也就是授权机制。有两种基本方法:
  OAuth Basic auth(需要强调的是,微博开放平台将于6月1日正式停止对Basic Auth的支持,所以这个方法不做讨论,其实需要用户名和密码的方法本身就是不安全的。)
  OAuth新浪官方文档在这里。想了解OAuth技术说明的可以访问项目主页。
  其实OAuth的过程还是很简单的。大致如下:
  调用 API 获取请求令牌。将用户重定向到授权页面(auth url)。用户输入用户名和密码完成授权。重定向到 Callback_url。向新浪微博交换请求令牌以获得访问令牌。结束。
  大致了解了OAuth的原理后,既然我们是集成到Django中,自然需要下载微博SDK的Python版本。
  不过,在这一切开始之前,您必须向新浪微博申请您的应用程序。申请地址在这里。这里需要强调的是,应用以后需要申请审核,因为只有审核通过后,才能在源中显示个性化的应用名称。因此,在申请时,要注意申请介绍信息的完整性和正确的申请分类。(在这个例子中,我们的分类是 Collaboration网站。)
  申请完成后,您将获得您的应用程序的 App Key 和 App Secret。
  回到授权用户登录的主题。要允许新浪微博帐号访问,首先我们需要在 urlpatterns 中添加几个 URL。如下:
  urlpatterns = patterns('projectname.appname.views', url(r'^log/$', 'login', name='log'), url(r'^logincheck/$', 'login_check', name='logcheck'), url(r'^logout/$', 'logout', name='logout'), )
  接下来,我们启动视图文件。代码:
  #!/usr/bin/env python # -*- coding: utf-8 -*- """ 基于django的新浪微博oauth views 需要django的session支持 """ from django.http import HttpResponseRedirect from weibopy.auth import OAuthHandler, WeibopError from weibopy import oauth consumer_key = '' # 设置你申请的appkey consumer_secret = '' # 设置你申请的appkey对于的secret class WebOAuthHandler(OAuthHandler): def get_authorization_url_with_callback(self, callback, signin_with_推ter=False): """Get the authorization URL to redirect the user""" try: # get the request token self.request_token = self._get_request_token() # build auth request and return as url if signin_with_推ter: url = self._get_oauth_url('authenticate') else: url = self._get_oauth_url('authorize') request = oauth.OAuthRequest.from_token_and_callback( token=self.request_token, callback=callback, http_url=url ) return request.to_url() except Exception, e: raise WeibopError(e) def _get_referer_url(request): referer_url = request.META.get('HTTP_REFERER', '/') host = request.META['HTTP_HOST'] if referer_url.startswith('http') and host not in referer_url: referer_url = '/' # 避免外站直接跳到登录页而发生跳转错误 return referer_url def _oauth(): """获取oauth认证类""" return WebOAuthHandler(consumer_key, consumer_secret) def login(request): # 保存最初的登录url,以便认证成功后跳转回来 back_to_url = _get_referer_url(request) request.session['login_back_to_url'] = back_to_url # 获取oauth认证url login_backurl = request.build_absolute_uri('/logincheck') auth_client = _oauth() auth_url = auth_client.get_authorization_url_with_callback(login_backurl) # 保存request_token,用户登录后需要使用它来获取access_token request.session['oauth_request_token'] = auth_client.request_token # 跳转到登录页面 return HttpResponseRedirect(auth_url) def login_check(request): """用户成功登录授权后,会回调此方法,获取access_token,完成授权""" # http://mk2.com/%3Foauth_token% ... 03896 verifier = request.GET.get('oauth_verifier', None) auth_client = _oauth() # 设置之前保存在session的request_token request_token = request.session['oauth_request_token'] del request.session['oauth_request_token'] auth_client.set_request_token(request_token.key, request_token.secret) access_token = auth_client.get_access_token(verifier) # 保存access_token,以后访问只需使用access_token即可 request.session['oauth_access_token'] = access_token # 跳转回最初登录前的页面 back_to_url = request.session.get('login_back_to_url', '/') return HttpResponseRedirect(back_to_url) def logout(request): """用户登出,直接删除access_token""" del request.session['oauth_access_token'] back_to_url = _get_referer_url(request) return HttpResponseRedirect(back_to_url)
  完成授权码之后,我们就需要知道怎么给新浪微博发消息了。其实下载的SDK下的exanples文件夹下的examples(是的,其实就是examples,这个英文水平不能抱怨),修改后直接使用即可。以 oauthSetTokenUpdate.py 为例,我们可以这样写:
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '应用的key' consumer_secret ='应用的App Secret' auth = OAuthHandler(consumer_key, consumer_secret) auth_url = auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() auth.get_access_token(verifier) api = API(auth) status = api.update_status(status='hello world', lat='12.3', long='45.6') # 注意status必须是UTF-8编码的字符串,经纬度是可以不写的 print status.id print status.text
  运行程序会提示一个 URL 链接,在浏览器中打开链接,并授予访问权限,你会得到一串 PIN 码。输入此 PIN 并发送推送,并且还将显示用户的访问令牌密钥和访问令牌密码。
  但是,这样做是不是有点太书呆子了?其实只要知道Access token key和Access token secret,我们就可以直接使用它们来创建API对象:
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '应用的key' consumer_secret ='应用的App Secret' token = '用户的Access token key' tokenSecret = '用户的Access token secret' auth = OAuthHandler(consumer_key, consumer_secret) auth.setToken(token, tokenSecret) api = API(auth) status = api.update_status(status='搞定收工~')
  这时候我们可以重构代码,写一个微博类来实现以上功能,实现一些api操作。
  class weibo(object): def __init__(self): self.consumer_key = consumer_key self.consumer_secret = consumer_secret def getAtt(self, key): try: return self.obj.__getattribute__(key) except Exception, e: print e return '' def getAttValue(self, obj, key): try: return obj.__getattribute__(key) except Exception, e: print e return '' def auth(self): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) auth_url = self.auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() self.auth.get_access_token(verifier) self.api = API(self.auth) def setToken(self, token, tokenSecret): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) self.auth.setToken(token, tokenSecret) self.api = API(self.auth) def update(self, message): message = message.encode("utf-8") status = self.api.update_status(status=message) self.obj = status id = self.getAtt("id") return id def destroy_status(self, id): status = self.api.destroy_status(id) self.obj = status id = self.getAtt("id") return id def comment(self, id, message): comment = self.api.comment(id=id, comment=message) self.obj = comment mid = self.getAtt("id") return mid def comment_destroy (self, mid): comment = self.api.comment_destroy(mid) self.obj = comment mid = self.getAtt("id") text = self.getAtt("text") return mid def repost(self, id, message): post = self.api.repost(id=id, status=message) self.obj = post mid = self.getAtt("id") return mid def get_username(self): if getattr(self, '_username', None) is None: self._username = self.auth.get_username() return self._username
  不知道读者是否还记得我们上面授权部分的代码。在login_check方法代码中,有这么一句话。
  request.session['oauth_access_token'] = access_token
  授权用户的 access_token 已存储在 session 变量中。因此,当用户授权完成后,我们可以直接使用 session 中存储的 access_token,如下所示:
  access_token = request.session.get('oauth_access_token', None) if access_token is not None: weibo_client = weibo() weibo_client.setToken(access_token.key, access_token.secret) weibo_client.update('全部完成~')
  上面的例子中只用到了一些 API,完整的 API 手册可以在这里找到。
  文章来源:

使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步微博内容至自己网站(图))

网站优化优采云 发表了文章 • 0 个评论 • 51 次浏览 • 2022-03-15 04:02 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步微博内容至自己网站(图))
  使用新浪微博开放平台api同步微博内容至自己网站,找你公司的人帮你把内容同步下来。这个可以参考下维基百科上的api功能列表。
  同步推,同步助手之类的工具很多的,搜下就行,好多需要会员。一定要有耐心。
  看上去有四种方式:1,使用现有的中小网站,它们提供了网页同步服务,把链接放在上面就可以,只要导出数据到本地,修改下链接就行了,修改也很简单,比如把"url.php"改成"['.home.con'].[';ns=''&nss='&jsc='&ws='&anchor='&pos=']'",把服务改成:-invalid-content-provider2,在你的网站上,找一个api,把内容发到他们的服务器上。
  -invalid-content-provider3,还有一个就是自己编写程序,把php,html,css等页面对应到你所需要的数据上。-invalid-content-provider4,最简单的方法就是,用互联网公司做的库服务,就和百度库一样。-reference-and-blogging/就是这个。
  我在网上搜到了两个教程
  给自己网站做个版面,另外借一个服务器,这个是最简单的,
  同步推都不知道可以看我另一个回答里面就有教你如何用比较简单的方法发布微博
  1.借助网站,可以是你自己的网站,但是是最好的,比如拥有草根创作平台,用它去做统一管理2.借助第三方平台,比如数据厂商京东我要实现服务器无需安装数据迁移工具3.借助第三方平台,比如微信运营接入最简单, 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(使用新浪微博开放平台api同步微博内容至自己网站(图))
  使用新浪微博开放平台api同步微博内容至自己网站,找你公司的人帮你把内容同步下来。这个可以参考下维基百科上的api功能列表。
  同步推,同步助手之类的工具很多的,搜下就行,好多需要会员。一定要有耐心。
  看上去有四种方式:1,使用现有的中小网站,它们提供了网页同步服务,把链接放在上面就可以,只要导出数据到本地,修改下链接就行了,修改也很简单,比如把"url.php"改成"['.home.con'].[';ns=''&nss='&jsc='&ws='&anchor='&pos=']'",把服务改成:-invalid-content-provider2,在你的网站上,找一个api,把内容发到他们的服务器上。
  -invalid-content-provider3,还有一个就是自己编写程序,把php,html,css等页面对应到你所需要的数据上。-invalid-content-provider4,最简单的方法就是,用互联网公司做的库服务,就和百度库一样。-reference-and-blogging/就是这个。
  我在网上搜到了两个教程
  给自己网站做个版面,另外借一个服务器,这个是最简单的,
  同步推都不知道可以看我另一个回答里面就有教你如何用比较简单的方法发布微博
  1.借助网站,可以是你自己的网站,但是是最好的,比如拥有草根创作平台,用它去做统一管理2.借助第三方平台,比如数据厂商京东我要实现服务器无需安装数据迁移工具3.借助第三方平台,比如微信运营接入最简单,

使用新浪微博开放平台api同步微博内容至自己网站(新浪微博开放平台做个实践,开发一个功能简单的android客户端)

网站优化优采云 发表了文章 • 0 个评论 • 59 次浏览 • 2022-03-14 08:08 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博开放平台做个实践,开发一个功能简单的android客户端)
  介绍
  最近不太忙,花点时间学习android app开发。经过两周的学习,我在学习的同时也写了很多demo例子,可以从基本控件和基本动画效果的demo合集中放出,不断更新下载。
  从本周开始,我打算以新浪微博开放平台为实践,开发一个功能简单的安卓客户端,尽可能的完善功能。
  今天的内容
  
  上图是这个客户端的主界面。目前只获取前20条数据。您也可以单击刷新来刷新数据。功能比较简单。
  操作系统是android2.2.
  用到的技术点包括ListView、自定义ListAdapter、多线程相关Message、Handler、认证相关OAuth、异步加载用户图片等。
  新浪微博的验证使用signpost的OAuth组件,不使用微博的SDK。
  
  源代码下载:新浪微博2
  源码下载后,改后缀为rar,使用压缩软件解压。
  关于 OAuth 身份验证
  OAuth是目前比较流行的一种授权方案。twitter、facebook、google等大型开放平台均支持oauth认证方式,国内新浪微博、腾讯微博、163微博等开放平台也已支持。这种验证模式。
  来自维基百科的引文
  “oauth 是一种开放标准,允许用户允许第三方应用程序访问用户放置在 网站 上的私有资源,而无需将用户名和密码传递给第三方应用程序。oauth 允许用户提供一个令牌,而不是用户名和密码来访问他们存储在特定服务提供商处的数据。”
  例如:
  用户A在服务提供者B上存储了一些资源。B支持oauth授权方式。A 是 B 上的注册用户,拥有用户名和密码。使用用户名和密码登录B可以查看自己的资源。假设有一个应用程序C,当用户A使用C时,他需要自己存储在B上的资源。有两种方法可以在 C 上实现资源以在 B 上显示自身。
  这时C就可以使用B开启的oauth授权机制,当用户A想在B上展示资源时,C会跳转到B的验证页面,用户在B的页面输入用户名和密码。通过后,会询问用户是否为C应用开发相关资源。用户可以自定义C可以访问的资源,然后跳转回C应用。这样,您就不必担心用户名和密码,也不必同时存储多个资源。
  您可以通过以下网站了解更多关于oauth的具体技术细节。
  
  从上图中我们可以看出,整个流程分为消费者和提供者两部分。消费者是示例中的 C 应用程序,提供者是示例中的 B 服务提供者。
  使用 OAuth 进行认证和授权的流程如下:
  用户访问客户端的网站,想要操作存储在服务提供者中的用户资源。客户端向服务提供者请求一个临时令牌。服务提供者对客户端进行身份验证后,将授予一个临时令牌。客户端获取临时token后,将用户引导至服务提供者的授权页面,请求用户授权。在这个过程中,临时令牌和客户端的回调连接被发送给服务提供者。用户在服务提供商的网页上输入用户名和密码,然后授权客户端访问所请求的资源。授权成功后,服务商引导用户返回客户端的网页。客户端根据临时令牌从服务提供者处获取访问令牌。服务提供者根据临时令牌和用户授权授予客户端访问令牌。客户端使用获得的访问令牌来访问托管在服务提供商上的受保护资源。新浪微博的誓言
  
  借用一张新浪微博oauth验证流程图。
  当我们在新浪微博开放平台上创建一个新的应用程序时,我们会给新的应用程序分配一个key和secret,即consumerKey和consumerSecret。通过这两件事,我们去request_token,然后将用户重定向到新浪微博平台的授权页面。授权后,我们会根据callback_url跳转到我们应用的某个地址。我们再次使用request_token来获取access_token,然后我们需要通过access token来访问需要验证的开放平台提供的接口。
  当然,那些不需要验证就可以访问的接口,可以直接使用key进行访问。具体请参考开放平台提供的API文档。
  腾讯微博和163微博的开放平台在原理和实现上也类似。
  包.com。新浪微博2;导入oauth。路标。OAuth消费者;导入oauth。路标。OAuth提供者;导入oauth。路标。公地http。CommonsHttpOAuthConsumer;导入oauth。路标。公地http。CommonsHttpOAuthProvider;导入oauth。路标。例外。OAuthCommunicationException;导入oauth。路标。例外。OAuthExpectationFailedException; 导入oauth。路标。例外。OAuthMessageSignerException;导入oauth。路标。例外。OAuthNotAuthorizedException;公共类 OAuth { 私有 OAuthConsumer mConsumer; 私有 OAuthProvider mProvider;public static final String CALLBACK_URL = "sinaweibo2://WeiboListActivity"; 公共静态最终字符串 CONSUMER_KEY = "1849239616"; 公共静态最终字符串 CONSUMER_SECRET = "b2137bf782bf6cae004b8a8394d5d5d6";
  吨。新浪。com。cn/oauth/request_token"; public static final String ACCESS_TOKEN_URL = ". 吨。新浪。com。cn/oauth/access_token"; public static final String AUTHORIZE_URL = ". 吨。新浪。com。cn/oauth/authorize"; public OAuth() { } public String RetrieveAuthUrl() throws OAuthMessageSignerException, OAuthNotAuthorizedException, OAuthExpectationFailedException, OAuthCommunicationException { mConsumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); mProvider = new CommonsHttpOAuthProvider(REQUEST_TOKEN_URL, ACCESS_TOKEN_URL, AUTHO提供者。
  检索请求令牌(mConsumer,CALLBACK_URL);返回 authUrl; } public void RetrieveAccessToken(String verifier) 抛出 OAuthMessageSignerException, OAuthNotAuthorizedException, OAuthExpectationFailedException, OAuthCommunicationException { mProvider. setOAuth10a(true); 提供者。检索AccessToken(mConsumer,验证者);OAuth 用户。USER_ID=mProvider。获取响应参数()。getFirst("user_id"); OAuth 用户。ACCESS_TOKEN = mConsumer。获取令牌();OAuth 用户。ACCESS_TOKEN_SECRET = mConsumer。getTokenSecret(); } }
  更多功能
  接下来主要完善两个功能,一是分页浏览,二是发布微博。
  未来可能支持图片发布等实用功能。
  有UI美化,性能优化。
  总结
  在学习的过程中,我看了两本书,Pro.Android.2.pdf和Professional.Android.2.Application.Development.(Wrox,.2010,.0470565527). pdf,都是很不错的入门书,书我没有看完,但是看了大部分,边看边写demo。
  同时,论坛是eoe天天的开发者门户。回答问题、解决问题、提问、发帖,总之就是锻炼自己,强迫自己锻炼基础和思考。
  论坛上有很多中文的pdf教程,但是我发现大部分都是android开发者中心的Dev Guide和Resources中的内容的翻译。所以我觉得,如果英文不是很差,建议直接看上面两节,同时练习里面的例子。保证在两周内,你会取得很大的进步。
  参考
  Technorati 标签:android, 开放平台, oauth, 新浪微博 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博开放平台做个实践,开发一个功能简单的android客户端)
  介绍
  最近不太忙,花点时间学习android app开发。经过两周的学习,我在学习的同时也写了很多demo例子,可以从基本控件和基本动画效果的demo合集中放出,不断更新下载。
  从本周开始,我打算以新浪微博开放平台为实践,开发一个功能简单的安卓客户端,尽可能的完善功能。
  今天的内容
  
  上图是这个客户端的主界面。目前只获取前20条数据。您也可以单击刷新来刷新数据。功能比较简单。
  操作系统是android2.2.
  用到的技术点包括ListView、自定义ListAdapter、多线程相关Message、Handler、认证相关OAuth、异步加载用户图片等。
  新浪微博的验证使用signpost的OAuth组件,不使用微博的SDK。
  
  源代码下载:新浪微博2
  源码下载后,改后缀为rar,使用压缩软件解压。
  关于 OAuth 身份验证
  OAuth是目前比较流行的一种授权方案。twitter、facebook、google等大型开放平台均支持oauth认证方式,国内新浪微博、腾讯微博、163微博等开放平台也已支持。这种验证模式。
  来自维基百科的引文
  “oauth 是一种开放标准,允许用户允许第三方应用程序访问用户放置在 网站 上的私有资源,而无需将用户名和密码传递给第三方应用程序。oauth 允许用户提供一个令牌,而不是用户名和密码来访问他们存储在特定服务提供商处的数据。”
  例如:
  用户A在服务提供者B上存储了一些资源。B支持oauth授权方式。A 是 B 上的注册用户,拥有用户名和密码。使用用户名和密码登录B可以查看自己的资源。假设有一个应用程序C,当用户A使用C时,他需要自己存储在B上的资源。有两种方法可以在 C 上实现资源以在 B 上显示自身。
  这时C就可以使用B开启的oauth授权机制,当用户A想在B上展示资源时,C会跳转到B的验证页面,用户在B的页面输入用户名和密码。通过后,会询问用户是否为C应用开发相关资源。用户可以自定义C可以访问的资源,然后跳转回C应用。这样,您就不必担心用户名和密码,也不必同时存储多个资源。
  您可以通过以下网站了解更多关于oauth的具体技术细节。
  
  从上图中我们可以看出,整个流程分为消费者和提供者两部分。消费者是示例中的 C 应用程序,提供者是示例中的 B 服务提供者。
  使用 OAuth 进行认证和授权的流程如下:
  用户访问客户端的网站,想要操作存储在服务提供者中的用户资源。客户端向服务提供者请求一个临时令牌。服务提供者对客户端进行身份验证后,将授予一个临时令牌。客户端获取临时token后,将用户引导至服务提供者的授权页面,请求用户授权。在这个过程中,临时令牌和客户端的回调连接被发送给服务提供者。用户在服务提供商的网页上输入用户名和密码,然后授权客户端访问所请求的资源。授权成功后,服务商引导用户返回客户端的网页。客户端根据临时令牌从服务提供者处获取访问令牌。服务提供者根据临时令牌和用户授权授予客户端访问令牌。客户端使用获得的访问令牌来访问托管在服务提供商上的受保护资源。新浪微博的誓言
  
  借用一张新浪微博oauth验证流程图。
  当我们在新浪微博开放平台上创建一个新的应用程序时,我们会给新的应用程序分配一个key和secret,即consumerKey和consumerSecret。通过这两件事,我们去request_token,然后将用户重定向到新浪微博平台的授权页面。授权后,我们会根据callback_url跳转到我们应用的某个地址。我们再次使用request_token来获取access_token,然后我们需要通过access token来访问需要验证的开放平台提供的接口。
  当然,那些不需要验证就可以访问的接口,可以直接使用key进行访问。具体请参考开放平台提供的API文档。
  腾讯微博和163微博的开放平台在原理和实现上也类似。
  包.com。新浪微博2;导入oauth。路标。OAuth消费者;导入oauth。路标。OAuth提供者;导入oauth。路标。公地http。CommonsHttpOAuthConsumer;导入oauth。路标。公地http。CommonsHttpOAuthProvider;导入oauth。路标。例外。OAuthCommunicationException;导入oauth。路标。例外。OAuthExpectationFailedException; 导入oauth。路标。例外。OAuthMessageSignerException;导入oauth。路标。例外。OAuthNotAuthorizedException;公共类 OAuth { 私有 OAuthConsumer mConsumer; 私有 OAuthProvider mProvider;public static final String CALLBACK_URL = "sinaweibo2://WeiboListActivity"; 公共静态最终字符串 CONSUMER_KEY = "1849239616"; 公共静态最终字符串 CONSUMER_SECRET = "b2137bf782bf6cae004b8a8394d5d5d6";
  吨。新浪。com。cn/oauth/request_token"; public static final String ACCESS_TOKEN_URL = ". 吨。新浪。com。cn/oauth/access_token"; public static final String AUTHORIZE_URL = ". 吨。新浪。com。cn/oauth/authorize"; public OAuth() { } public String RetrieveAuthUrl() throws OAuthMessageSignerException, OAuthNotAuthorizedException, OAuthExpectationFailedException, OAuthCommunicationException { mConsumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); mProvider = new CommonsHttpOAuthProvider(REQUEST_TOKEN_URL, ACCESS_TOKEN_URL, AUTHO提供者。
  检索请求令牌(mConsumer,CALLBACK_URL);返回 authUrl; } public void RetrieveAccessToken(String verifier) 抛出 OAuthMessageSignerException, OAuthNotAuthorizedException, OAuthExpectationFailedException, OAuthCommunicationException { mProvider. setOAuth10a(true); 提供者。检索AccessToken(mConsumer,验证者);OAuth 用户。USER_ID=mProvider。获取响应参数()。getFirst("user_id"); OAuth 用户。ACCESS_TOKEN = mConsumer。获取令牌();OAuth 用户。ACCESS_TOKEN_SECRET = mConsumer。getTokenSecret(); } }
  更多功能
  接下来主要完善两个功能,一是分页浏览,二是发布微博。
  未来可能支持图片发布等实用功能。
  有UI美化,性能优化。
  总结
  在学习的过程中,我看了两本书,Pro.Android.2.pdf和Professional.Android.2.Application.Development.(Wrox,.2010,.0470565527). pdf,都是很不错的入门书,书我没有看完,但是看了大部分,边看边写demo。
  同时,论坛是eoe天天的开发者门户。回答问题、解决问题、提问、发帖,总之就是锻炼自己,强迫自己锻炼基础和思考。
  论坛上有很多中文的pdf教程,但是我发现大部分都是android开发者中心的Dev Guide和Resources中的内容的翻译。所以我觉得,如果英文不是很差,建议直接看上面两节,同时练习里面的例子。保证在两周内,你会取得很大的进步。
  参考
  Technorati 标签:android, 开放平台, oauth, 新浪微博

使用新浪微博开放平台api同步微博内容至自己网站(PHP+新浪云平台(SAE)——新浪微博应用开发的一个解决方案)

网站优化优采云 发表了文章 • 0 个评论 • 57 次浏览 • 2022-03-12 10:13 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(PHP+新浪云平台(SAE)——新浪微博应用开发的一个解决方案)
  PHP+新浪微博开放平台+新浪云平台(SAE)
  ——新浪微博应用开发解决方案
  一、PHP+新浪微博开放平台+新浪云平台(SAE)解决方案
  二、微博应用搭建过程
  三、PHP SDK中的Demo程序简析
  四、进一步的学习和有用的资源
  五、几个必须解决的问题
  【PDF全文下载】
  PHP+新浪微博开放平台+新浪云平台(SAE)解决方案基础
  1、新浪微博开放平台()
  什么是开放的:开放平台向开发者开放的是每个用户的用户关系。开发者不再像传统应用那样面向单个开发者,而是面向用户背后的整个朋友圈。每个API都围绕好友之间的交流提供相关功能,比如发微博、查看好友信息等。
  为什么要使用开放平台?开放的平台可以加快应用推广。每个用户都可以影响周围的朋友。一旦应用真的很好,用户可以很容易地推荐给朋友,朋友也可以推荐给他的朋友。开放平台使用户关系更容易获得。当应用涉及到用户交流时,需要同时拥有一定的用户群和用户的关系链,与如此大量的用户建立关系链需要花费大量的时间和精力。通过草根与草根、草根与明星、明星与明星之间的相互关注,微博形成了一个庞大的社交网络,应用程序可以通过开放平台直接使用这个网络。
  2、新浪云平台(新浪AppEngine,SAE)
  新浪App Engine(以下简称SAE)是国内首个公有云计算平台(新浪研发中心于2009年8月开始内部开发,2009年11月3日正式推出首个Alpha版本)。SAE是新浪云计算战略的核心组成部分。
  SAE作为国内公有云计算,从发展之初就吸取了国外公司如谷歌、亚马逊等公有云计算的成功技术经验,很快推出了一个有自己特色、有别于他们的云计算平台。SAE选择中国最流行的Web开发语言PHP作为首选支持语言。Web 开发者可以通过 SVN、SDK 或基于 Web 的在线代码编辑器在 Linux/Mac/Windows 上进行开发、部署和调试。成员协作也是可以的,不同角色对代码和项目的权限也会不同;SAE提供一系列分布式计算和存储服务供开发者使用,包括分布式文件存储、分布式数据库集群、分布式缓存、分布式定时服务等,这些服务将大大降低开发者的开发成本。同时,由于SAE整体架构的高可靠性和新浪的品牌保障,大大降低了开发者的运营风险。此外,SAE作为典型的云计算,采用“所付即用,所付即用”的计费理念,精准计算资源消耗(包括CPU、内存、磁盘等) .) 通过日志和统计中心的每个应用程序。
  总之,SAE是一个简单高效的分布式Web服务开发和运营平台。
  查看更多。
  3、新浪云平台(Sina AppEngine,SAE)与新浪微博开放平台的关系
  微博应用开发成功后,需要将代码部署到Web上才能使用。也就是说,微博应用开发是通过调用新浪微博开放平台中的API来完成的,这些程序上传到SAE并在SAE上运行。
  在开发过程中,可以搭建一个web服务器在本地运行程序,也可以选择传统的服务托管来完成。但是,这两种方案都需要很多麻烦的配置。
  开发时直接将代码部署到SAE不需要任何配置,而且SAE已经为你准备了更多未来可能用到的服务,我们可以直奔主题——开发微博应用。
  SAE 是免费的(至少作为个人学习的资源)也很重要。 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(PHP+新浪云平台(SAE)——新浪微博应用开发的一个解决方案)
  PHP+新浪微博开放平台+新浪云平台(SAE)
  ——新浪微博应用开发解决方案
  一、PHP+新浪微博开放平台+新浪云平台(SAE)解决方案
  二、微博应用搭建过程
  三、PHP SDK中的Demo程序简析
  四、进一步的学习和有用的资源
  五、几个必须解决的问题
  【PDF全文下载】
  PHP+新浪微博开放平台+新浪云平台(SAE)解决方案基础
  1、新浪微博开放平台()
  什么是开放的:开放平台向开发者开放的是每个用户的用户关系。开发者不再像传统应用那样面向单个开发者,而是面向用户背后的整个朋友圈。每个API都围绕好友之间的交流提供相关功能,比如发微博、查看好友信息等。
  为什么要使用开放平台?开放的平台可以加快应用推广。每个用户都可以影响周围的朋友。一旦应用真的很好,用户可以很容易地推荐给朋友,朋友也可以推荐给他的朋友。开放平台使用户关系更容易获得。当应用涉及到用户交流时,需要同时拥有一定的用户群和用户的关系链,与如此大量的用户建立关系链需要花费大量的时间和精力。通过草根与草根、草根与明星、明星与明星之间的相互关注,微博形成了一个庞大的社交网络,应用程序可以通过开放平台直接使用这个网络。
  2、新浪云平台(新浪AppEngine,SAE)
  新浪App Engine(以下简称SAE)是国内首个公有云计算平台(新浪研发中心于2009年8月开始内部开发,2009年11月3日正式推出首个Alpha版本)。SAE是新浪云计算战略的核心组成部分。
  SAE作为国内公有云计算,从发展之初就吸取了国外公司如谷歌、亚马逊等公有云计算的成功技术经验,很快推出了一个有自己特色、有别于他们的云计算平台。SAE选择中国最流行的Web开发语言PHP作为首选支持语言。Web 开发者可以通过 SVN、SDK 或基于 Web 的在线代码编辑器在 Linux/Mac/Windows 上进行开发、部署和调试。成员协作也是可以的,不同角色对代码和项目的权限也会不同;SAE提供一系列分布式计算和存储服务供开发者使用,包括分布式文件存储、分布式数据库集群、分布式缓存、分布式定时服务等,这些服务将大大降低开发者的开发成本。同时,由于SAE整体架构的高可靠性和新浪的品牌保障,大大降低了开发者的运营风险。此外,SAE作为典型的云计算,采用“所付即用,所付即用”的计费理念,精准计算资源消耗(包括CPU、内存、磁盘等) .) 通过日志和统计中心的每个应用程序。
  总之,SAE是一个简单高效的分布式Web服务开发和运营平台。
  查看更多。
  3、新浪云平台(Sina AppEngine,SAE)与新浪微博开放平台的关系
  微博应用开发成功后,需要将代码部署到Web上才能使用。也就是说,微博应用开发是通过调用新浪微博开放平台中的API来完成的,这些程序上传到SAE并在SAE上运行。
  在开发过程中,可以搭建一个web服务器在本地运行程序,也可以选择传统的服务托管来完成。但是,这两种方案都需要很多麻烦的配置。
  开发时直接将代码部署到SAE不需要任何配置,而且SAE已经为你准备了更多未来可能用到的服务,我们可以直奔主题——开发微博应用。
  SAE 是免费的(至少作为个人学习的资源)也很重要。

使用新浪微博开放平台api同步微博内容至自己网站(博主创建博客初期一直在用多说社会化评论插件(组图))

网站优化优采云 发表了文章 • 0 个评论 • 53 次浏览 • 2022-03-12 04:12 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(博主创建博客初期一直在用多说社会化评论插件(组图))
  在创建博客的早期,博主一直在使用多数社交评论插件。一是因为多硕跨博客回复提醒功能,二是同步文章到社交平台;也就是本文将要实现的内容。功能。前两张图
  
  
  
  
  不难看出两张图的区别:除了内容不同,还有来自XXX,也就是红框标出的位置;图2是在同步前使用多说插件的效果,图1是实现本博客功能的效果。
  目的(功能)
  第一:减少博客的访问量 网站
  第二:提高质量,突出我们博客的崇高气质;正因为如此,我们必须自己实现这些功能,而不使用插件。
  创意申请权限,创建应用申请开发者权限
  使用您的新浪微博账号登录微博开放平台:
  点击页面导航中的【编辑开发者信息】或访问:,根据页面表单内容填写信息,提交后等待新浪审核。(下图为基本流程)
  
  
  新浪评论一般需要1个左右的工作。批准后可以创建应用程序
  创建应用
  点击【我的应用】-&gt;创建应用或访问:创建应用,根据表单内容一步步填写表单,注意:第一步中的应用名称为图1和图2中的来源名称.
  填写申请信息后,提交审核。这里的审稿时间会长一些,忘了多长时间了。
  在此期间,您可以使用新浪开放的端口进行开发,但在未通过审批之前,源位置会显示“未通过申请​​”字样,但不影响开发和使用;新浪微博有很多接口供开发者调用,感兴趣的朋友可以仔细研究下,但本文主要介绍“2/statuses/update”接口(开发文档:)。
  编写代码
  根据开发文档()中的介绍,我们可以知道:
  接口网址:
  数据格式:JSON
  请求方式:POST
  请求参数:status(微博内容)、source(AppKey,从我在开发者中心的应用中获取;图3)
  是否登录:是
  
  
  根据以上信息,我们编写代码如下:
  **
* WordPress 同步文章到新浪微博 By 无主题博客
* 原文地址: https://wuzhuti.cn/1771.html
*/
function post_to_sina_weibo($post_ID) {
if (wp_is_post_revision($post_ID)) return;//修订版本(更新)不发微博
$get_post_info = get_post($post_ID);
$get_post_centent = get_post($post_ID)->post_content;
$get_post_title = get_post($post_ID)->post_title;
if ($get_post_info->post_status == &#039;publish&#039; && $_POST[&#039;original_post_status&#039;] != &#039;publish&#039;) {
$appkey=&#039;3838258703&#039;;
$username=&#039;微博用户名&#039;;
$userpassword=&#039;微博密码&#039;;
$request = new WP_Http;
$status = &#039;【&#039; . strip_tags($get_post_title) . &#039;】 &#039; . mb_strimwidth(strip_tags(apply_filters(&#039;the_content&#039;, $get_post_centent)) , 0, 132, &#039;...&#039;) . &#039; 全文地址:&#039; . get_permalink($post_ID);
$api_url = &#039;https://api.weibo.com/2/status ... 3B%3B
$body = array(&#039;status&#039; => $status,&#039;source&#039; => $appkey);
$headers = array(&#039;Authorization&#039; => &#039;Basic &#039; . base64_encode("$username:$userpassword"));
$result = $request->post($api_url, array(&#039;body&#039; => $body,&#039;headers&#039; => $headers));
}
}
add_action(&#039;publish_post&#039;, &#039;post_to_sina_weibo&#039;, 0);//给发布文章增加一个分享微博的动作
  小伙伴们,提升自己的风格,突出网站的高大气质,赶紧行动起来吧。
  最新更新 2015-01-29
  有朋友说,微博流量很难引流。今天我们来看一个具体的例子。
  当我看到一个新帖子 文章 有一个陌生人的评论时,我很好奇,这个陌生人的来历是什么?带着好奇,我看了看站长的统计数据。奶奶的,我吓了一跳,来源是百度。不会吧,百度收录就写了2个小时?
  
  
  
  
  
  
  就是这样来的,也是同步到新浪微博的结果。
  最新更新 2015-01-31
  有几个小伙伴发不了微博,同时也不知道怎么测试问题。测试方法有很多,比如打印log日志,开启wp调试等等,我给大家介绍一种。我更常用的是方法。这不是唯一的测试方法,它可能不适用于您。是我认为比较适合本文介绍的代码调试的一种方法。仅供参考,不做研究。
  在网站根目录下新建一个php文件,比如weibo.php,因为这段代码需要调用wordpress的一些函数,所以在第一行我们需要引入wordpress的主文件:
  要求(目录名(文件)。'/wp-blog-header.php');
  引入这个文件后,我们就可以在weibo.php中随意调用wordpress中的函数了。
  然后将本文函数内容复制到weibo.php,写一个有效的post_id,去掉第一行的revision判断代码,在函数末尾输出微博接口的返回值,根据问题查找返回值的内容。 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(博主创建博客初期一直在用多说社会化评论插件(组图))
  在创建博客的早期,博主一直在使用多数社交评论插件。一是因为多硕跨博客回复提醒功能,二是同步文章到社交平台;也就是本文将要实现的内容。功能。前两张图
  
  
  
  
  不难看出两张图的区别:除了内容不同,还有来自XXX,也就是红框标出的位置;图2是在同步前使用多说插件的效果,图1是实现本博客功能的效果。
  目的(功能)
  第一:减少博客的访问量 网站
  第二:提高质量,突出我们博客的崇高气质;正因为如此,我们必须自己实现这些功能,而不使用插件。
  创意申请权限,创建应用申请开发者权限
  使用您的新浪微博账号登录微博开放平台:
  点击页面导航中的【编辑开发者信息】或访问:,根据页面表单内容填写信息,提交后等待新浪审核。(下图为基本流程)
  
  
  新浪评论一般需要1个左右的工作。批准后可以创建应用程序
  创建应用
  点击【我的应用】-&gt;创建应用或访问:创建应用,根据表单内容一步步填写表单,注意:第一步中的应用名称为图1和图2中的来源名称.
  填写申请信息后,提交审核。这里的审稿时间会长一些,忘了多长时间了。
  在此期间,您可以使用新浪开放的端口进行开发,但在未通过审批之前,源位置会显示“未通过申请​​”字样,但不影响开发和使用;新浪微博有很多接口供开发者调用,感兴趣的朋友可以仔细研究下,但本文主要介绍“2/statuses/update”接口(开发文档:)。
  编写代码
  根据开发文档()中的介绍,我们可以知道:
  接口网址:
  数据格式:JSON
  请求方式:POST
  请求参数:status(微博内容)、source(AppKey,从我在开发者中心的应用中获取;图3)
  是否登录:是
  
  
  根据以上信息,我们编写代码如下:
  **
* WordPress 同步文章到新浪微博 By 无主题博客
* 原文地址: https://wuzhuti.cn/1771.html
*/
function post_to_sina_weibo($post_ID) {
if (wp_is_post_revision($post_ID)) return;//修订版本(更新)不发微博
$get_post_info = get_post($post_ID);
$get_post_centent = get_post($post_ID)->post_content;
$get_post_title = get_post($post_ID)->post_title;
if ($get_post_info->post_status == &#039;publish&#039; && $_POST[&#039;original_post_status&#039;] != &#039;publish&#039;) {
$appkey=&#039;3838258703&#039;;
$username=&#039;微博用户名&#039;;
$userpassword=&#039;微博密码&#039;;
$request = new WP_Http;
$status = &#039;【&#039; . strip_tags($get_post_title) . &#039;】 &#039; . mb_strimwidth(strip_tags(apply_filters(&#039;the_content&#039;, $get_post_centent)) , 0, 132, &#039;...&#039;) . &#039; 全文地址:&#039; . get_permalink($post_ID);
$api_url = &#039;https://api.weibo.com/2/status ... 3B%3B
$body = array(&#039;status&#039; => $status,&#039;source&#039; => $appkey);
$headers = array(&#039;Authorization&#039; => &#039;Basic &#039; . base64_encode("$username:$userpassword"));
$result = $request->post($api_url, array(&#039;body&#039; => $body,&#039;headers&#039; => $headers));
}
}
add_action(&#039;publish_post&#039;, &#039;post_to_sina_weibo&#039;, 0);//给发布文章增加一个分享微博的动作
  小伙伴们,提升自己的风格,突出网站的高大气质,赶紧行动起来吧。
  最新更新 2015-01-29
  有朋友说,微博流量很难引流。今天我们来看一个具体的例子。
  当我看到一个新帖子 文章 有一个陌生人的评论时,我很好奇,这个陌生人的来历是什么?带着好奇,我看了看站长的统计数据。奶奶的,我吓了一跳,来源是百度。不会吧,百度收录就写了2个小时?
  
  
  
  
  
  
  就是这样来的,也是同步到新浪微博的结果。
  最新更新 2015-01-31
  有几个小伙伴发不了微博,同时也不知道怎么测试问题。测试方法有很多,比如打印log日志,开启wp调试等等,我给大家介绍一种。我更常用的是方法。这不是唯一的测试方法,它可能不适用于您。是我认为比较适合本文介绍的代码调试的一种方法。仅供参考,不做研究。
  在网站根目录下新建一个php文件,比如weibo.php,因为这段代码需要调用wordpress的一些函数,所以在第一行我们需要引入wordpress的主文件:
  要求(目录名(文件)。'/wp-blog-header.php');
  引入这个文件后,我们就可以在weibo.php中随意调用wordpress中的函数了。
  然后将本文函数内容复制到weibo.php,写一个有效的post_id,去掉第一行的revision判断代码,在函数末尾输出微博接口的返回值,根据问题查找返回值的内容。

使用新浪微博开放平台api同步微博内容至自己网站(新浪微博API开发了一个应用,如何让用户高效获取他想要的信息?)

网站优化优采云 发表了文章 • 0 个评论 • 68 次浏览 • 2022-03-12 04:10 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博API开发了一个应用,如何让用户高效获取他想要的信息?)
  最近用新浪微博的API开发了一个应用,所以从技术的角度讲一下开发过程中的一些收获,以及对微博开放平台的一些看法。
  你开发了什么应用程序
  很多人又爱又恨微博,因为微博上很多博主的内容都很好,但是觉得长时间使用微博是在浪费时间,因为大部分信息都是无用的。
  那么如何让用户高效地获取他们想要的信息(比如特定用户的微博)?我开发了这个应用程序来解决这个问题。
  通过使用该应用,用户可以选择想要关注的微博用户,该应用每天早上都会发送一封邮件,邮件内容为相关微博用户昨天发布的微博。
  有了这个应用程序,你想关注的信息就不会错过,让你在特定的时间学习这些微博的知识。
  技术栈
  这个应用程序的实现实际上非常简单。当用户通过应用关注m个微博用户时,系统会自动使用特定系统用户的账号关注m个微博用户,使得该特定系统用户的微博时间流与m个用户的微博信息(调用新浪微博API获取),经过相关处理后,将m个用户的微博信息通过电子邮件发送给用户。
  在开发这个应用程序的时候,我尽量不做轮子,写了很多类库,并且完全使用了一些第三方库,从而专注于逻辑代码的编写。使用的库包括:
  使用新浪微博 API 的一些好处
  使用新浪微博API其实很简单,只要你是开发者,当然要有域名和虚拟主机。与微信公众平台相比,成为开发者的门槛要低得多。
  新浪微博API是一个数据API。无论从数据的性质还是从安全的角度来看,都有很多限制,所以普通用户如果要使用新浪微博API,会很“受伤”。这里有一些例子:
  对新浪开放平台的一些看法。
  首先,我个人觉得新浪开放平台上的文件非常混乱,人们搞不清它们之间的关系,所以我会用自己的方式表达自己的看法。
  开放平台
  一个开放的平台是一个生态系统,依托平台,开发者和平台所有者可以做一些事情,而这些事情在理论上对双方都是有利的。
  开放平台在技术体系上由两部分组成。第一部分是 API。微博的API就是数据(资源),是新浪的核心资产(API就是公司)。第二部分是SDK。SDK 是供开发人员使用 API 的框架。
  从使用平台看,SDK包括:语言SDK(PHP SDK、Python SDK)、移动客户端SDK、JavaScript SDK(可以理解为浏览器)、组件。
  除了组件SDK,其他SDK都需要具备一定的编程能力,大部分人都会使用组件(复制一段代码运行)。
  另外,新浪微博还有一些业务平台,比如轻应用(希望开发者可以做一些参考,放在微博轻应用中),想法很好,但已经名存实亡。
  微博数据基于“个人”
  所谓“个人”,是指公司也被视为“个人”。你为什么这么说?公司的微博和用户的微博在业绩(发微博)上没有本质的区别,所以演变成了企业微博这个概念被弱化了。所有数据均基于“个人”,但按类型区分(普通用户、蓝V、专业企业用户)。
  个人认为,这种理解是一种简化的理解方式。原来我的一位领导负责微博的企业版。所谓企业版微博,是要求普通用户的微博账号和企业版微博账号必须联动,但仔细想想,这不就是一个内部系统吗?发展了,至于为什么不发展,我目前还没有能力去分析。我个人的感觉是用户关注你微博发的信息,不需要什么花哨的东西,比如在企业微博上卖东西(从技术角度来说很难实现,不如找一个程序员专注于它)为自己的业务发展)。
  其实这对微博来说也是非常好的,专注于数据的输出,简化微博API体系,不要让它变得过于复杂庞大。
  根据“个人”的类型,微博API对应的权限也会有所区别。例如,Blue V 用户开发者已经扩展了很多 API(如群消息接口等)。
  微博API分类
  个人对微博API的理解分为两种:
  对于基础数据API,其实已经没有什么发展空间了。一方面是API限制太多(原因很简单,微博不想让一个使用量大的客户端跟官方客户端竞争?)。
  大多数开发者在非常简单的场景中使用基础数据API,比如在公司官网上添加“微博登录框”、“添加关注按钮”等。
  我认为可以大力开发增值API。比如粉丝服务API有点类似于微信公众平台(可以和用户交互),让开发者可以向用户推送消息(比如向付费用户推送);而商业数据API则是与一些营销公司共享微博的核心资源(数据)。例如,一些公司想要进行一些研究,可以使用业务数据 API 来做出决策。
  增值API可以直接给微博公司带来收益,这也可能是大数据的商业化,虽然我个人很讨厌“大数据”这个词。
  微博开放平台为何无法运行?
  与微信公众平台相比,微信基本上是每个人都必须安装的APP,但微博客户端并不是必须安装的APP。对此,微博需要认真反思,微博客户端太重了(天上还有广告,我喜欢用手机H5版)。因为微博没有客户端这个强大的载体,也影响了平台的发展。
  另外,微信生态是手机客户端,微博生态太多,手机、电脑等各种平台,个人觉得策略会太分散,导致没有重点。想想如果微博没有网页版会怎样?
  人们为什么喜欢使用公共平台进行开发:
  那么微博开放平台为什么不做呢?个人认为,原因一定是多方面的。每个人都有自己的看法。分析时不要退缩。每个系统都在进化。提高自己的能力。
  综上所述,如果你想用微博API做一个应用(并且严重依赖它),我个人觉得你应该放弃这个意愿。
  最后,欢迎大家使用我的应用程序。使用地址。如果更多人使用它,它将继续优化。 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博API开发了一个应用,如何让用户高效获取他想要的信息?)
  最近用新浪微博的API开发了一个应用,所以从技术的角度讲一下开发过程中的一些收获,以及对微博开放平台的一些看法。
  你开发了什么应用程序
  很多人又爱又恨微博,因为微博上很多博主的内容都很好,但是觉得长时间使用微博是在浪费时间,因为大部分信息都是无用的。
  那么如何让用户高效地获取他们想要的信息(比如特定用户的微博)?我开发了这个应用程序来解决这个问题。
  通过使用该应用,用户可以选择想要关注的微博用户,该应用每天早上都会发送一封邮件,邮件内容为相关微博用户昨天发布的微博。
  有了这个应用程序,你想关注的信息就不会错过,让你在特定的时间学习这些微博的知识。
  技术栈
  这个应用程序的实现实际上非常简单。当用户通过应用关注m个微博用户时,系统会自动使用特定系统用户的账号关注m个微博用户,使得该特定系统用户的微博时间流与m个用户的微博信息(调用新浪微博API获取),经过相关处理后,将m个用户的微博信息通过电子邮件发送给用户。
  在开发这个应用程序的时候,我尽量不做轮子,写了很多类库,并且完全使用了一些第三方库,从而专注于逻辑代码的编写。使用的库包括:
  使用新浪微博 API 的一些好处
  使用新浪微博API其实很简单,只要你是开发者,当然要有域名和虚拟主机。与微信公众平台相比,成为开发者的门槛要低得多。
  新浪微博API是一个数据API。无论从数据的性质还是从安全的角度来看,都有很多限制,所以普通用户如果要使用新浪微博API,会很“受伤”。这里有一些例子:
  对新浪开放平台的一些看法。
  首先,我个人觉得新浪开放平台上的文件非常混乱,人们搞不清它们之间的关系,所以我会用自己的方式表达自己的看法。
  开放平台
  一个开放的平台是一个生态系统,依托平台,开发者和平台所有者可以做一些事情,而这些事情在理论上对双方都是有利的。
  开放平台在技术体系上由两部分组成。第一部分是 API。微博的API就是数据(资源),是新浪的核心资产(API就是公司)。第二部分是SDK。SDK 是供开发人员使用 API 的框架。
  从使用平台看,SDK包括:语言SDK(PHP SDK、Python SDK)、移动客户端SDK、JavaScript SDK(可以理解为浏览器)、组件。
  除了组件SDK,其他SDK都需要具备一定的编程能力,大部分人都会使用组件(复制一段代码运行)。
  另外,新浪微博还有一些业务平台,比如轻应用(希望开发者可以做一些参考,放在微博轻应用中),想法很好,但已经名存实亡。
  微博数据基于“个人”
  所谓“个人”,是指公司也被视为“个人”。你为什么这么说?公司的微博和用户的微博在业绩(发微博)上没有本质的区别,所以演变成了企业微博这个概念被弱化了。所有数据均基于“个人”,但按类型区分(普通用户、蓝V、专业企业用户)。
  个人认为,这种理解是一种简化的理解方式。原来我的一位领导负责微博的企业版。所谓企业版微博,是要求普通用户的微博账号和企业版微博账号必须联动,但仔细想想,这不就是一个内部系统吗?发展了,至于为什么不发展,我目前还没有能力去分析。我个人的感觉是用户关注你微博发的信息,不需要什么花哨的东西,比如在企业微博上卖东西(从技术角度来说很难实现,不如找一个程序员专注于它)为自己的业务发展)。
  其实这对微博来说也是非常好的,专注于数据的输出,简化微博API体系,不要让它变得过于复杂庞大。
  根据“个人”的类型,微博API对应的权限也会有所区别。例如,Blue V 用户开发者已经扩展了很多 API(如群消息接口等)。
  微博API分类
  个人对微博API的理解分为两种:
  对于基础数据API,其实已经没有什么发展空间了。一方面是API限制太多(原因很简单,微博不想让一个使用量大的客户端跟官方客户端竞争?)。
  大多数开发者在非常简单的场景中使用基础数据API,比如在公司官网上添加“微博登录框”、“添加关注按钮”等。
  我认为可以大力开发增值API。比如粉丝服务API有点类似于微信公众平台(可以和用户交互),让开发者可以向用户推送消息(比如向付费用户推送);而商业数据API则是与一些营销公司共享微博的核心资源(数据)。例如,一些公司想要进行一些研究,可以使用业务数据 API 来做出决策。
  增值API可以直接给微博公司带来收益,这也可能是大数据的商业化,虽然我个人很讨厌“大数据”这个词。
  微博开放平台为何无法运行?
  与微信公众平台相比,微信基本上是每个人都必须安装的APP,但微博客户端并不是必须安装的APP。对此,微博需要认真反思,微博客户端太重了(天上还有广告,我喜欢用手机H5版)。因为微博没有客户端这个强大的载体,也影响了平台的发展。
  另外,微信生态是手机客户端,微博生态太多,手机、电脑等各种平台,个人觉得策略会太分散,导致没有重点。想想如果微博没有网页版会怎样?
  人们为什么喜欢使用公共平台进行开发:
  那么微博开放平台为什么不做呢?个人认为,原因一定是多方面的。每个人都有自己的看法。分析时不要退缩。每个系统都在进化。提高自己的能力。
  综上所述,如果你想用微博API做一个应用(并且严重依赖它),我个人觉得你应该放弃这个意愿。
  最后,欢迎大家使用我的应用程序。使用地址。如果更多人使用它,它将继续优化。

使用新浪微博开放平台api同步微博内容至自己网站( 修改一下才能用,和之前修改百度sitemap插件原理一致)

网站优化优采云 发表了文章 • 0 个评论 • 53 次浏览 • 2022-03-12 04:09 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(
修改一下才能用,和之前修改百度sitemap插件原理一致)
  function post_to_sina_weibo($post_ID) {
   if (wp_is_post_revision($post_ID)) return;  //修订版本(更新)不发微博
   $get_post_info = get_post($post_ID);
   $get_post_centent = get_post($post_ID)->post_content;
   $get_post_title = get_post($post_ID)->post_title;
   if ($get_post_info->post_status == &#x27;publish&#x27; && $_POST[&#x27;original_post_status&#x27;] != &#x27;publish&#x27;) {
     $appkey=&#x27;3838258703&#x27;;
     $username=&#x27;微博用户名&#x27;;
     $userpassword=&#x27;微博密码&#x27;;
     $request = new WP_Http;
     $status = &#x27;【&#x27; . strip_tags($get_post_title) . &#x27;】 &#x27; . mb_strimwidth(strip_tags(apply_filters(&#x27;the_content&#x27;, $get_post_centent)) , 0, 132, &#x27;...&#x27;) . &#x27; 全文地址:&#x27; . get_permalink($post_ID);
     $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B
     $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey);
     $headers = array(&#x27;Authorization&#x27; => &#x27;Basic &#x27; . base64_encode("$username:$userpassword"));
     $result = $request->post($api_url, array(&#x27;body&#x27; => $body,&#x27;headers&#x27; => $headers));
   }
}
add_action(&#x27;publish_post&#x27;, &#x27;post_to_sina_weibo&#x27;, 0);//给发布文章增加一个分享微博的动作
  同步后是这样的效果:
  由于我的博客已经关闭了修改版,所以必须修改后才能使用,这和之前修改百度站点地图插件的原则是一致的(请注意第2~3行):
  function post_to_sina_weibo($post_ID) {
   /* 鉴于很多朋友反馈发布文章空白,临时加上调试代码,若无问题可删除此行,若有问题请将错误信息在本文留言即可 */
   ini_set(&#x27;display_errors&#x27;, true);
 
   /* 此处修改为通过文章自定义栏目来判断是否同步 */
   if(get_post_meta($post_ID,&#x27;weibo_sync&#x27;,true) == 1) return;
 
   $get_post_info = get_post($post_ID);
   $get_post_centent = get_post($post_ID)->post_content;
   $get_post_title = get_post($post_ID)->post_title;
   if ($get_post_info->post_status == &#x27;publish&#x27; && $_POST[&#x27;original_post_status&#x27;] != &#x27;publish&#x27;) {
     $appkey=&#x27;1034947262&#x27;;  /* 此处是你的新浪微博appkey,不修改的话就会显示来自张戈博客哦! */
     $username=&#x27;微博用户名&#x27;;
     $userpassword=&#x27;微博密码&#x27;;
     $request = new WP_Http;
    
     /* 获取文章标签关键词 */
     $keywords = "";
     $tags = wp_get_post_tags($post_ID);
     foreach ($tags as $tag ) {
        $keywords = $keywords.&#x27;#&#x27;.$tag->name."#";
     }
     /* 修改了下风格,并添加文章关键词作为微博话题,提高与其他相关微博的关联率 */
     $string1 = &#x27;【文章发布】&#x27; . strip_tags( $get_post_title ).&#x27;:&#x27;;
     $string2 = $keywords.&#x27; 查看全文:&#x27;.get_permalink($post_ID);
 
     /* 微博字数控制,避免超标同步失败 */
     $wb_num = (138 - WeiboLength($string1.$string2))*2;
     $status = $string1.mb_strimwidth(strip_tags( apply_filters(&#x27;the_content&#x27;, $get_post_centent)),0, $wb_num,&#x27;...&#x27;).$string2;
 
     $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B
     $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey);
     $headers = array(&#x27;Authorization&#x27; => &#x27;Basic &#x27; . base64_encode("$username:$userpassword"));
     $result = $request->post($api_url, array(&#x27;body&#x27; => $body,&#x27;headers&#x27; => $headers));
 
     /* 若同步成功,则给新增自定义栏目weibo_sync,避免以后更新文章重复同步 */
     add_post_meta($post_ID, &#x27;weibo_sync&#x27;, 1, true);
   }
}
add_action(&#x27;publish_post&#x27;, &#x27;post_to_sina_weibo&#x27;, 0);
 
/*
//获取微博字符长度函数
*/
function WeiboLength($str)
{
    $arr = arr_split_zh($str);   //先将字符串分割到数组中
    foreach ($arr as $v){
        $temp = ord($v);        //转换为ASCII码
        if ($temp > 0 && $temp < 127) {
            $len = $len+0.5;
        }else{
            $len ++;
        }
    }
    return ceil($len);        //加一取整
}
/*
//拆分字符串函数,只支持 gb2312编码  
//参考:http://u-czh.iteye.com/blog/1565858
*/
function arr_split_zh($tempaddtext){
    $tempaddtext = iconv("UTF-8", "GBK//IGNORE", $tempaddtext);
    $cind = 0;
    $arr_cont=array();
    for($i=0;$i 0){
            if(ord(substr($tempaddtext,$cind,1)) < 0xA1 ){ //如果为英文则取1个字节
                array_push($arr_cont,substr($tempaddtext,$cind,1));
                $cind++;
            }else{
                array_push($arr_cont,substr($tempaddtext,$cind,2));
                $cind+=2;
            }
        }
    }
    foreach ($arr_cont as &$row)
    {
        $row=iconv("gb2312","UTF-8",$row);
    }
    return $arr_cont;
}
  我修改的内容在代码中有相应的注释,一看就懂!
  修改目的:一是针对【部分WordPress博客禁用修改功能】中的该功能,不会因为更新文章而造成微博重复同步的尴尬;二是增加字数控制,避免字数超过140导致同步失败。
  同步后是这样的效果:
  上述代码的使用很简单,只需将其添加到主题目录下的functions.php中即可。至于如何实现【来自XX博客】的效果,需要到新浪微博开放平台申请网站应用权限:
  具体操作步骤请到无题博客查看相关教程,这里不再赘述==&gt;传送门开始!
  二、新代码
  上面代码同步的时候没有图片,有点遗憾。
  昨天闲来无事,看了新浪的API文档,发现符合要求的API接口:
  ps:API文档地址:
  仔细看参数说明,修改之前的代码。代码如下(请注意第6~7行):
  2016年12月18日更新:1、增加同步日志,方便查看失败原因;2、增加了对同步结果的判断,如果失败则不添加自定义列。Ps:请使用下面的最新代码覆盖旧代码。
  /**
* WordPress发布文章同步到新浪微博(带图片&自定义栏目版)
* 文章地址:http://zhangge.net/4947.html
* 最后更新:2016年12月18日
*/
function post_to_sina_weibo($post_ID) {
   /* 鉴于很多朋友反馈发布文章空白,临时加上调试代码,若无问题可删除此行,若有问题请将错误信息在本文留言即可 */
   ini_set(&#x27;display_errors&#x27;, true);
 
   /* 此处修改为通过文章自定义栏目来判断是否同步 */
   if(get_post_meta($post_ID,&#x27;weibo_sync&#x27;,true) == 1) return;
 
   $get_post_info = get_post($post_ID);
   $get_post_centent = get_post($post_ID)->post_content;
   $get_post_title = get_post($post_ID)->post_title;
   if ($get_post_info->post_status == &#x27;publish&#x27; && $_POST[&#x27;original_post_status&#x27;] != &#x27;publish&#x27;) {
       $appkey=&#x27;1034947262&#x27;; /* 此处是你的新浪微博appkey,不修改的话就会显示来自张戈博客哦! */
       $username=&#x27;微博用户名&#x27;;
       $userpassword=&#x27;微博密码&#x27;;
       $request = new WP_Http;
       $keywords = "";
 
       /* 获取文章标签关键词 */
       $tags = wp_get_post_tags($post_ID);
       foreach ($tags as $tag ) {
          $keywords = $keywords.&#x27;#&#x27;.$tag->name."#";
       }
 
      /* 修改了下风格,并添加文章关键词作为微博话题,提高与其他相关微博的关联率 */
     $string1 = &#x27;【文章发布】&#x27; . strip_tags( $get_post_title ).&#x27;:&#x27;;
     $string2 = $keywords.&#x27; 查看全文:&#x27;.get_permalink($post_ID);
 
     /* 微博字数控制,避免超标同步失败 */
      $wb_num = (138 - WeiboLength($string1.$string2))*2;
      $status = $string1.mb_strimwidth(strip_tags( apply_filters(&#x27;the_content&#x27;, $get_post_centent)),0, $wb_num,&#x27;...&#x27;).$string2;
    
       /* 获取特色图片,如果没设置就抓取文章第一张图片 */
       $url = get_mypost_thumbnail($post_ID);
    
       /* 判断是否存在图片,定义不同的接口 */
       if(!empty($url)){
           $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B /* 新的API接口地址 */
           $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey,&#x27;url&#x27; => $url);
       } else {
           $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B
           $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey);
       }
       $headers = array(&#x27;Authorization&#x27; => &#x27;Basic &#x27; . base64_encode("$username:$userpassword"));
       $results = $request->post($api_url, array(&#x27;body&#x27; => $body,&#x27;headers&#x27; => $headers));
       $result  = $results[&#x27;body&#x27;];
        if(!strstr($result ,&#x27;error_code&#x27;)) {
            // 若成功,则给新增自定义栏目weibo_sync,避免以后更新文章重复同步
            add_post_meta($post_ID, &#x27;weibo_sync&#x27;, 1, true);
        } else {
            // 若失败,则记录错误日志
            logInfo($result);
        }  
       add_post_meta($post_ID, &#x27;weibo_sync&#x27;, 1, true);
    }
}
add_action(&#x27;publish_post&#x27;, &#x27;post_to_sina_weibo&#x27;, 0);
 
/*
//获取微博字符长度函数
*/
function WeiboLength($str)
{
    $arr = arr_split_zh($str);   //先将字符串分割到数组中
    foreach ($arr as $v){
        $temp = ord($v);        //转换为ASCII码
        if ($temp > 0 && $temp < 127) {
            $len = $len+0.5;
        }else{
            $len ++;
        }
    }
    return ceil($len);        //加一取整
}
/*
//拆分字符串函数,只支持 gb2312编码  
//参考:http://u-czh.iteye.com/blog/1565858
*/
function arr_split_zh($tempaddtext){
    $tempaddtext = iconv("UTF-8", "GBK//IGNORE", $tempaddtext);
    $cind = 0;
    $arr_cont=array();
    for($i=0;$i 0){
            if(ord(substr($tempaddtext,$cind,1)) < 0xA1 ){ //如果为英文则取1个字节
                array_push($arr_cont,substr($tempaddtext,$cind,1));
                $cind++;
            }else{
                array_push($arr_cont,substr($tempaddtext,$cind,2));
                $cind+=2;
            }
        }
    }
    foreach ($arr_cont as &$row)
    {
        $row=iconv("gb2312","UTF-8",$row);
    }
    return $arr_cont;
}
 
/**
* WordPress 获取文章图片加强版 By 张戈博客
*/
if(!function_exists(&#x27;get_mypost_thumbnail&#x27;)){
  function get_mypost_thumbnail($post_ID){
     if (has_post_thumbnail()) {
            $timthumb_src = wp_get_attachment_image_src( get_post_thumbnail_id($post_ID), &#x27;full&#x27; );
            $url = $timthumb_src[0];
    } else {
        if(!$post_content){
            $post = get_post($post_ID);
            $post_content = $post->post_content;
        }
        preg_match_all(&#x27;||i&#x27;, do_shortcode($post_content), $matches);
        if( $matches && isset($matches[1]) && isset($matches[1][0]) ){      
            $url =  $matches[1][0];
        }else{
            $url =  &#x27;&#x27;;
        }
    }
    return $url;
  }
}
 
//写日志函数
function logInfo($msg)
{
    $logSwitch  = 1;                     // 日志开关:1表示打开,0表示关闭
    $logFile    = &#x27;/tmp/sync_weibo.log&#x27;; // 日志路径          
    if ($logSwitch == 0 ) return;
    date_default_timezone_set(&#x27;Asia/Shanghai&#x27;);
    file_put_contents($logFile, date(&#x27;[Y-m-d H:i:s]: &#x27;) . $msg . PHP_EOL, FILE_APPEND);
    return $msg;
}
  三、权限申请
  万事俱备,但是发布文章肯定不会同步,为什么呢?因为我没有权限~!原来这个接口需要在原有的基础上额外应用。
  如果你的网站已经在微博申请访问权限,点击应用名称即可:
  然后,在界面管理==&gt;申请权限==&gt;申请微博的高级写权限:
  无论多么容易,门槛多么低,我们在问别人的时候都要保持真诚的态度:
  一般1个工作日内即可过关:
  通过后可以发布文章,可以看到效果,不仅有特色图片,还有显示【来自XX博客】:
  它是否再次满足了您的迫切需求?哈哈!
  2016年1月16日新增内容:我们最近发现了一个微博同步失败的原因,分享了微博同步失败的终极DeBUG方法。详情请见: 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(
修改一下才能用,和之前修改百度sitemap插件原理一致)
  function post_to_sina_weibo($post_ID) {
   if (wp_is_post_revision($post_ID)) return;  //修订版本(更新)不发微博
   $get_post_info = get_post($post_ID);
   $get_post_centent = get_post($post_ID)->post_content;
   $get_post_title = get_post($post_ID)->post_title;
   if ($get_post_info->post_status == &#x27;publish&#x27; && $_POST[&#x27;original_post_status&#x27;] != &#x27;publish&#x27;) {
     $appkey=&#x27;3838258703&#x27;;
     $username=&#x27;微博用户名&#x27;;
     $userpassword=&#x27;微博密码&#x27;;
     $request = new WP_Http;
     $status = &#x27;【&#x27; . strip_tags($get_post_title) . &#x27;】 &#x27; . mb_strimwidth(strip_tags(apply_filters(&#x27;the_content&#x27;, $get_post_centent)) , 0, 132, &#x27;...&#x27;) . &#x27; 全文地址:&#x27; . get_permalink($post_ID);
     $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B
     $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey);
     $headers = array(&#x27;Authorization&#x27; => &#x27;Basic &#x27; . base64_encode("$username:$userpassword"));
     $result = $request->post($api_url, array(&#x27;body&#x27; => $body,&#x27;headers&#x27; => $headers));
   }
}
add_action(&#x27;publish_post&#x27;, &#x27;post_to_sina_weibo&#x27;, 0);//给发布文章增加一个分享微博的动作
  同步后是这样的效果:
  由于我的博客已经关闭了修改版,所以必须修改后才能使用,这和之前修改百度站点地图插件的原则是一致的(请注意第2~3行):
  function post_to_sina_weibo($post_ID) {
   /* 鉴于很多朋友反馈发布文章空白,临时加上调试代码,若无问题可删除此行,若有问题请将错误信息在本文留言即可 */
   ini_set(&#x27;display_errors&#x27;, true);
 
   /* 此处修改为通过文章自定义栏目来判断是否同步 */
   if(get_post_meta($post_ID,&#x27;weibo_sync&#x27;,true) == 1) return;
 
   $get_post_info = get_post($post_ID);
   $get_post_centent = get_post($post_ID)->post_content;
   $get_post_title = get_post($post_ID)->post_title;
   if ($get_post_info->post_status == &#x27;publish&#x27; && $_POST[&#x27;original_post_status&#x27;] != &#x27;publish&#x27;) {
     $appkey=&#x27;1034947262&#x27;;  /* 此处是你的新浪微博appkey,不修改的话就会显示来自张戈博客哦! */
     $username=&#x27;微博用户名&#x27;;
     $userpassword=&#x27;微博密码&#x27;;
     $request = new WP_Http;
    
     /* 获取文章标签关键词 */
     $keywords = "";
     $tags = wp_get_post_tags($post_ID);
     foreach ($tags as $tag ) {
        $keywords = $keywords.&#x27;#&#x27;.$tag->name."#";
     }
     /* 修改了下风格,并添加文章关键词作为微博话题,提高与其他相关微博的关联率 */
     $string1 = &#x27;【文章发布】&#x27; . strip_tags( $get_post_title ).&#x27;:&#x27;;
     $string2 = $keywords.&#x27; 查看全文:&#x27;.get_permalink($post_ID);
 
     /* 微博字数控制,避免超标同步失败 */
     $wb_num = (138 - WeiboLength($string1.$string2))*2;
     $status = $string1.mb_strimwidth(strip_tags( apply_filters(&#x27;the_content&#x27;, $get_post_centent)),0, $wb_num,&#x27;...&#x27;).$string2;
 
     $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B
     $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey);
     $headers = array(&#x27;Authorization&#x27; => &#x27;Basic &#x27; . base64_encode("$username:$userpassword"));
     $result = $request->post($api_url, array(&#x27;body&#x27; => $body,&#x27;headers&#x27; => $headers));
 
     /* 若同步成功,则给新增自定义栏目weibo_sync,避免以后更新文章重复同步 */
     add_post_meta($post_ID, &#x27;weibo_sync&#x27;, 1, true);
   }
}
add_action(&#x27;publish_post&#x27;, &#x27;post_to_sina_weibo&#x27;, 0);
 
/*
//获取微博字符长度函数
*/
function WeiboLength($str)
{
    $arr = arr_split_zh($str);   //先将字符串分割到数组中
    foreach ($arr as $v){
        $temp = ord($v);        //转换为ASCII码
        if ($temp > 0 && $temp < 127) {
            $len = $len+0.5;
        }else{
            $len ++;
        }
    }
    return ceil($len);        //加一取整
}
/*
//拆分字符串函数,只支持 gb2312编码  
//参考:http://u-czh.iteye.com/blog/1565858
*/
function arr_split_zh($tempaddtext){
    $tempaddtext = iconv("UTF-8", "GBK//IGNORE", $tempaddtext);
    $cind = 0;
    $arr_cont=array();
    for($i=0;$i 0){
            if(ord(substr($tempaddtext,$cind,1)) < 0xA1 ){ //如果为英文则取1个字节
                array_push($arr_cont,substr($tempaddtext,$cind,1));
                $cind++;
            }else{
                array_push($arr_cont,substr($tempaddtext,$cind,2));
                $cind+=2;
            }
        }
    }
    foreach ($arr_cont as &$row)
    {
        $row=iconv("gb2312","UTF-8",$row);
    }
    return $arr_cont;
}
  我修改的内容在代码中有相应的注释,一看就懂!
  修改目的:一是针对【部分WordPress博客禁用修改功能】中的该功能,不会因为更新文章而造成微博重复同步的尴尬;二是增加字数控制,避免字数超过140导致同步失败。
  同步后是这样的效果:
  上述代码的使用很简单,只需将其添加到主题目录下的functions.php中即可。至于如何实现【来自XX博客】的效果,需要到新浪微博开放平台申请网站应用权限:
  具体操作步骤请到无题博客查看相关教程,这里不再赘述==&gt;传送门开始!
  二、新代码
  上面代码同步的时候没有图片,有点遗憾。
  昨天闲来无事,看了新浪的API文档,发现符合要求的API接口:
  ps:API文档地址:
  仔细看参数说明,修改之前的代码。代码如下(请注意第6~7行):
  2016年12月18日更新:1、增加同步日志,方便查看失败原因;2、增加了对同步结果的判断,如果失败则不添加自定义列。Ps:请使用下面的最新代码覆盖旧代码。
  /**
* WordPress发布文章同步到新浪微博(带图片&自定义栏目版)
* 文章地址:http://zhangge.net/4947.html
* 最后更新:2016年12月18日
*/
function post_to_sina_weibo($post_ID) {
   /* 鉴于很多朋友反馈发布文章空白,临时加上调试代码,若无问题可删除此行,若有问题请将错误信息在本文留言即可 */
   ini_set(&#x27;display_errors&#x27;, true);
 
   /* 此处修改为通过文章自定义栏目来判断是否同步 */
   if(get_post_meta($post_ID,&#x27;weibo_sync&#x27;,true) == 1) return;
 
   $get_post_info = get_post($post_ID);
   $get_post_centent = get_post($post_ID)->post_content;
   $get_post_title = get_post($post_ID)->post_title;
   if ($get_post_info->post_status == &#x27;publish&#x27; && $_POST[&#x27;original_post_status&#x27;] != &#x27;publish&#x27;) {
       $appkey=&#x27;1034947262&#x27;; /* 此处是你的新浪微博appkey,不修改的话就会显示来自张戈博客哦! */
       $username=&#x27;微博用户名&#x27;;
       $userpassword=&#x27;微博密码&#x27;;
       $request = new WP_Http;
       $keywords = "";
 
       /* 获取文章标签关键词 */
       $tags = wp_get_post_tags($post_ID);
       foreach ($tags as $tag ) {
          $keywords = $keywords.&#x27;#&#x27;.$tag->name."#";
       }
 
      /* 修改了下风格,并添加文章关键词作为微博话题,提高与其他相关微博的关联率 */
     $string1 = &#x27;【文章发布】&#x27; . strip_tags( $get_post_title ).&#x27;:&#x27;;
     $string2 = $keywords.&#x27; 查看全文:&#x27;.get_permalink($post_ID);
 
     /* 微博字数控制,避免超标同步失败 */
      $wb_num = (138 - WeiboLength($string1.$string2))*2;
      $status = $string1.mb_strimwidth(strip_tags( apply_filters(&#x27;the_content&#x27;, $get_post_centent)),0, $wb_num,&#x27;...&#x27;).$string2;
    
       /* 获取特色图片,如果没设置就抓取文章第一张图片 */
       $url = get_mypost_thumbnail($post_ID);
    
       /* 判断是否存在图片,定义不同的接口 */
       if(!empty($url)){
           $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B /* 新的API接口地址 */
           $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey,&#x27;url&#x27; => $url);
       } else {
           $api_url = &#x27;https://api.weibo.com/2/status ... 3B%3B
           $body = array(&#x27;status&#x27; => $status,&#x27;source&#x27; => $appkey);
       }
       $headers = array(&#x27;Authorization&#x27; => &#x27;Basic &#x27; . base64_encode("$username:$userpassword"));
       $results = $request->post($api_url, array(&#x27;body&#x27; => $body,&#x27;headers&#x27; => $headers));
       $result  = $results[&#x27;body&#x27;];
        if(!strstr($result ,&#x27;error_code&#x27;)) {
            // 若成功,则给新增自定义栏目weibo_sync,避免以后更新文章重复同步
            add_post_meta($post_ID, &#x27;weibo_sync&#x27;, 1, true);
        } else {
            // 若失败,则记录错误日志
            logInfo($result);
        }  
       add_post_meta($post_ID, &#x27;weibo_sync&#x27;, 1, true);
    }
}
add_action(&#x27;publish_post&#x27;, &#x27;post_to_sina_weibo&#x27;, 0);
 
/*
//获取微博字符长度函数
*/
function WeiboLength($str)
{
    $arr = arr_split_zh($str);   //先将字符串分割到数组中
    foreach ($arr as $v){
        $temp = ord($v);        //转换为ASCII码
        if ($temp > 0 && $temp < 127) {
            $len = $len+0.5;
        }else{
            $len ++;
        }
    }
    return ceil($len);        //加一取整
}
/*
//拆分字符串函数,只支持 gb2312编码  
//参考:http://u-czh.iteye.com/blog/1565858
*/
function arr_split_zh($tempaddtext){
    $tempaddtext = iconv("UTF-8", "GBK//IGNORE", $tempaddtext);
    $cind = 0;
    $arr_cont=array();
    for($i=0;$i 0){
            if(ord(substr($tempaddtext,$cind,1)) < 0xA1 ){ //如果为英文则取1个字节
                array_push($arr_cont,substr($tempaddtext,$cind,1));
                $cind++;
            }else{
                array_push($arr_cont,substr($tempaddtext,$cind,2));
                $cind+=2;
            }
        }
    }
    foreach ($arr_cont as &$row)
    {
        $row=iconv("gb2312","UTF-8",$row);
    }
    return $arr_cont;
}
 
/**
* WordPress 获取文章图片加强版 By 张戈博客
*/
if(!function_exists(&#x27;get_mypost_thumbnail&#x27;)){
  function get_mypost_thumbnail($post_ID){
     if (has_post_thumbnail()) {
            $timthumb_src = wp_get_attachment_image_src( get_post_thumbnail_id($post_ID), &#x27;full&#x27; );
            $url = $timthumb_src[0];
    } else {
        if(!$post_content){
            $post = get_post($post_ID);
            $post_content = $post->post_content;
        }
        preg_match_all(&#x27;||i&#x27;, do_shortcode($post_content), $matches);
        if( $matches && isset($matches[1]) && isset($matches[1][0]) ){      
            $url =  $matches[1][0];
        }else{
            $url =  &#x27;&#x27;;
        }
    }
    return $url;
  }
}
 
//写日志函数
function logInfo($msg)
{
    $logSwitch  = 1;                     // 日志开关:1表示打开,0表示关闭
    $logFile    = &#x27;/tmp/sync_weibo.log&#x27;; // 日志路径          
    if ($logSwitch == 0 ) return;
    date_default_timezone_set(&#x27;Asia/Shanghai&#x27;);
    file_put_contents($logFile, date(&#x27;[Y-m-d H:i:s]: &#x27;) . $msg . PHP_EOL, FILE_APPEND);
    return $msg;
}
  三、权限申请
  万事俱备,但是发布文章肯定不会同步,为什么呢?因为我没有权限~!原来这个接口需要在原有的基础上额外应用。
  如果你的网站已经在微博申请访问权限,点击应用名称即可:
  然后,在界面管理==&gt;申请权限==&gt;申请微博的高级写权限:
  无论多么容易,门槛多么低,我们在问别人的时候都要保持真诚的态度:
  一般1个工作日内即可过关:
  通过后可以发布文章,可以看到效果,不仅有特色图片,还有显示【来自XX博客】:
  它是否再次满足了您的迫切需求?哈哈!
  2016年1月16日新增内容:我们最近发现了一个微博同步失败的原因,分享了微博同步失败的终极DeBUG方法。详情请见:

使用新浪微博开放平台api同步微博内容至自己网站(经品牌几何编写「同步圈」,竟然可以将朋友圈同时同步到新浪微博去)

网站优化优采云 发表了文章 • 0 个评论 • 63 次浏览 • 2022-03-09 16:06 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(经品牌几何编写「同步圈」,竟然可以将朋友圈同时同步到新浪微博去)
  我相信每个人都是一样的。自从开始玩微信之后,新浪微博基本就冷清了,三五天、一两周才更新一次。不知不觉中,觉得在微博和微信上切换发布个人信息有点累赘,或者觉得不同平台的信息流交流还是比较不方便……
  今天的品牌几何为您提供了科普新技能。偶然看到一篇文章文章,发现了一个“同步圈”,可以同时将朋友圈同步到新浪微博。
  原则上,“同步圈”调用了微信朋友圈上的一些内容识别接口,可以自动抓取绑定用户的朋友圈内容,然后使用微博开放平台的API接口发送相同的内容。出去。抽象地说,“同步圈”与著名的自动化服务 IFTTT 非常相似。只不过它在微信封闭的城墙上开通了单向信息站,帮助用户将内容输出到更广阔的公共网络空间。
  好了,废话不多说,让我们看看怎么做吧!
  ▼
  
  2、然后点击“立即体验”授权新浪微博。
  
  3、授权新浪微博后,按照以下步骤完成。
  4、完成步骤后,你的微信里会多出一个好友“同步圈”。
  
  5、 那么,当你进入朋友圈时,“同步圈”会自动为你同步到新浪微博。
  但是,目前的“同步圈”存在以下两个不足:
  1. 小视频无法同步。
  2. 发多张朋友圈的时候,只能同步第一张到微博。
  另外,如果不想将某个朋友圈同步到微博,可以给“同步圈”的朋友设置一个标签。发不想同步微博的朋友圈时,将“同步圈”好友设置为不可见。.
  好了,新技能就普及到这里,快来试试吧!
  来源 | 90后俱乐部(ID:club_12)
  由品牌几何撰写 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(经品牌几何编写「同步圈」,竟然可以将朋友圈同时同步到新浪微博去)
  我相信每个人都是一样的。自从开始玩微信之后,新浪微博基本就冷清了,三五天、一两周才更新一次。不知不觉中,觉得在微博和微信上切换发布个人信息有点累赘,或者觉得不同平台的信息流交流还是比较不方便……
  今天的品牌几何为您提供了科普新技能。偶然看到一篇文章文章,发现了一个“同步圈”,可以同时将朋友圈同步到新浪微博。
  原则上,“同步圈”调用了微信朋友圈上的一些内容识别接口,可以自动抓取绑定用户的朋友圈内容,然后使用微博开放平台的API接口发送相同的内容。出去。抽象地说,“同步圈”与著名的自动化服务 IFTTT 非常相似。只不过它在微信封闭的城墙上开通了单向信息站,帮助用户将内容输出到更广阔的公共网络空间。
  好了,废话不多说,让我们看看怎么做吧!
  ▼
  
  2、然后点击“立即体验”授权新浪微博。
  
  3、授权新浪微博后,按照以下步骤完成。
  4、完成步骤后,你的微信里会多出一个好友“同步圈”。
  
  5、 那么,当你进入朋友圈时,“同步圈”会自动为你同步到新浪微博。
  但是,目前的“同步圈”存在以下两个不足:
  1. 小视频无法同步。
  2. 发多张朋友圈的时候,只能同步第一张到微博。
  另外,如果不想将某个朋友圈同步到微博,可以给“同步圈”的朋友设置一个标签。发不想同步微博的朋友圈时,将“同步圈”好友设置为不可见。.
  好了,新技能就普及到这里,快来试试吧!
  来源 | 90后俱乐部(ID:club_12)
  由品牌几何撰写

使用新浪微博开放平台api同步微博内容至自己网站(新浪微博开放平台复制代码代码:$_$数组(图))

网站优化优采云 发表了文章 • 0 个评论 • 49 次浏览 • 2022-03-08 22:06 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博开放平台复制代码代码:$_$数组(图))
  本节内容:
  新浪微博API的php实例。
  新浪微博API开发资源很多。新浪微博为开发者提供平台。该网站是: 收录新浪微博发展的综合信息,包括开发者的使用和介绍,以及各种语言。API功能介绍文档、SDK等资料。
  首先,在新浪微博开放平台下载基于PHP的SDK开发包。下载地址为:
  将下载包放入开发环境并解压。演示程序也收录在其中。您可以参考其示例程序进行编写。
  新浪微博API开发最重要的用户授权流程
  开发的第三方应用程序使用 OAuth 授权。新浪微博开放平台对OAuth授权流程有清晰完整的介绍,可以看这里。
  1.首先,获取一个未授权的 Request Token
  复制代码代码示例:
  $o = new WeiboOAuth( WB_AKEY , WB_SKEY );
  $keys = $o-&gt;getRequestToken();
  //echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);
  您需要在新浪微博开放平台注册一个账号,或者直接用您的新浪微博账号登录,进入应用,按照提示创建自己的第三方应用。创建完成后,可以获得两个授权的App Key和App Secret值。,这两个值是开发应用的关键。
  获取到授权值后,就可以使用上面的代码获取未授权的Request Token值,该值会存储在$key数组变量中。
  2.请求用户授权Token
  复制代码代码示例:
  $_SESSION['keys'] = $keys;
  aurl = $o-&gt;getAuthorizeURL( $keys['oauth_token'] ,false , '#39;);
  获取到未授权的Request Token值后,就可以使用上面的代码开始准备去新浪微博授权页面进行授权了。$aurl 是授权链接页面。获取到$aurl后,可以使用header()直接跳转到授权页面,然后用户输入新浪微博账号和密码进行授权。授权完成后会自动跳转回你在上一个参数中设置的回调页面:你可以设置链接到上一页,这样授权完成后会自动返回页面。跳回来。
  注意:需要设置会话密钥的值,这是获取下面授权的Access Token所需要的。很多朋友可能会参考开放平台上的说明进行授权,但是发现总是报错,一般是这个问题。你没有设置 session keys 的值,当然下面无法获取 Access Token 的值。必须记住这一点。
  3.用户授权的Access Token
  复制代码代码示例:
  $o = new WeiboOAuth( WB_AKEY ,
  WB_SKEY ,
  $_SESSION['keys']['oauth_token'] ,
  $_SESSION['keys']['oauth_token_secret'] );
  $last_key = $o-&gt;getAccessToken( $_REQUEST['oauth_verifier'] ) ;
  回声($last_key['oauth_token']);
  上述代码最终得到用户授权的Access Token,一共有两个值,存放在$last_key数组变量中。还可以看到最后两个参数是之前设置的session值。至此基本完成,这就是一个完整的新浪微博用户授权流程。
  授权完成后工作
  授权完成后,即可开始调用新浪微博提供的各种API函数接口进行实际应用开发。在这里,我们将简要说明获取最新微博记录的接口。其他类似。
  获取新浪微博最新信息的API接口函数为:public_timeline()。示例代码如下:
  复制代码代码示例:
  //获取前20条最新更新的公众微博消息
  $c = new WeiboClient( WB_AKEY ,
  WB_SKEY ,
  $oauth_token ,
  $oauth_token_secret );
  $msg = $c-&gt;public_timeline();
  if ($msg === false || $msg === null){
  echo "发生错误";
  返回假;
  }
  if (isset($msg['error_code']) &amp;&amp; isset($msg['error'])){
  echo ('Error_code: '.$msg['error_code'].'; 错误: '.$msg['error'] );
  返回假;
  }
  print_r($msg);
  通常,在获取到用户授权的Access Token值后,存储在用户表中,与应用中的账号对应。之后,在每次调用新浪微博的各个api接口时,就无需再进行认证了。
  实例化 WeiboClient 对象,然后直接调用接口函数 public_timeline 获取返回信息,如果没有错误。通常新浪微博api接口返回的数据格式一般是Json格式或者xml格式,而这里是用php开发的,所以使用Json格式数据有先天优势,如果返回Json格式数据,直接使用php函数json_decode()可以转换成php常用的数组格式。 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博开放平台复制代码代码:$_$数组(图))
  本节内容:
  新浪微博API的php实例。
  新浪微博API开发资源很多。新浪微博为开发者提供平台。该网站是: 收录新浪微博发展的综合信息,包括开发者的使用和介绍,以及各种语言。API功能介绍文档、SDK等资料。
  首先,在新浪微博开放平台下载基于PHP的SDK开发包。下载地址为:
  将下载包放入开发环境并解压。演示程序也收录在其中。您可以参考其示例程序进行编写。
  新浪微博API开发最重要的用户授权流程
  开发的第三方应用程序使用 OAuth 授权。新浪微博开放平台对OAuth授权流程有清晰完整的介绍,可以看这里。
  1.首先,获取一个未授权的 Request Token
  复制代码代码示例:
  $o = new WeiboOAuth( WB_AKEY , WB_SKEY );
  $keys = $o-&gt;getRequestToken();
  //echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);
  您需要在新浪微博开放平台注册一个账号,或者直接用您的新浪微博账号登录,进入应用,按照提示创建自己的第三方应用。创建完成后,可以获得两个授权的App Key和App Secret值。,这两个值是开发应用的关键。
  获取到授权值后,就可以使用上面的代码获取未授权的Request Token值,该值会存储在$key数组变量中。
  2.请求用户授权Token
  复制代码代码示例:
  $_SESSION['keys'] = $keys;
  aurl = $o-&gt;getAuthorizeURL( $keys['oauth_token'] ,false , '#39;);
  获取到未授权的Request Token值后,就可以使用上面的代码开始准备去新浪微博授权页面进行授权了。$aurl 是授权链接页面。获取到$aurl后,可以使用header()直接跳转到授权页面,然后用户输入新浪微博账号和密码进行授权。授权完成后会自动跳转回你在上一个参数中设置的回调页面:你可以设置链接到上一页,这样授权完成后会自动返回页面。跳回来。
  注意:需要设置会话密钥的值,这是获取下面授权的Access Token所需要的。很多朋友可能会参考开放平台上的说明进行授权,但是发现总是报错,一般是这个问题。你没有设置 session keys 的值,当然下面无法获取 Access Token 的值。必须记住这一点。
  3.用户授权的Access Token
  复制代码代码示例:
  $o = new WeiboOAuth( WB_AKEY ,
  WB_SKEY ,
  $_SESSION['keys']['oauth_token'] ,
  $_SESSION['keys']['oauth_token_secret'] );
  $last_key = $o-&gt;getAccessToken( $_REQUEST['oauth_verifier'] ) ;
  回声($last_key['oauth_token']);
  上述代码最终得到用户授权的Access Token,一共有两个值,存放在$last_key数组变量中。还可以看到最后两个参数是之前设置的session值。至此基本完成,这就是一个完整的新浪微博用户授权流程。
  授权完成后工作
  授权完成后,即可开始调用新浪微博提供的各种API函数接口进行实际应用开发。在这里,我们将简要说明获取最新微博记录的接口。其他类似。
  获取新浪微博最新信息的API接口函数为:public_timeline()。示例代码如下:
  复制代码代码示例:
  //获取前20条最新更新的公众微博消息
  $c = new WeiboClient( WB_AKEY ,
  WB_SKEY ,
  $oauth_token ,
  $oauth_token_secret );
  $msg = $c-&gt;public_timeline();
  if ($msg === false || $msg === null){
  echo "发生错误";
  返回假;
  }
  if (isset($msg['error_code']) &amp;&amp; isset($msg['error'])){
  echo ('Error_code: '.$msg['error_code'].'; 错误: '.$msg['error'] );
  返回假;
  }
  print_r($msg);
  通常,在获取到用户授权的Access Token值后,存储在用户表中,与应用中的账号对应。之后,在每次调用新浪微博的各个api接口时,就无需再进行认证了。
  实例化 WeiboClient 对象,然后直接调用接口函数 public_timeline 获取返回信息,如果没有错误。通常新浪微博api接口返回的数据格式一般是Json格式或者xml格式,而这里是用php开发的,所以使用Json格式数据有先天优势,如果返回Json格式数据,直接使用php函数json_decode()可以转换成php常用的数组格式。

使用新浪微博开放平台api同步微博内容至自己网站(之前微博node.js是我之前没用过的吗?(组图) )

网站优化优采云 发表了文章 • 0 个评论 • 59 次浏览 • 2022-03-07 22:17 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(之前微博node.js是我之前没用过的吗?(组图)
)
  我之前一直在使用新浪微博的api进行数据同步。今年年初,1月8日左右,微博的api不知什么原因突然不可用,接口调用不断出现403错误。“开发平台”一直是机器回复。
  因此,我猜新浪微博关闭了它的api。我猜可能是因为微博太难赚钱了,所以向腾讯学习,封闭数据赚大钱。
  不过我在微博上贴了很多数据,但是微博到现在连数据备份都没有,所以我还是需要另找方法进行数据同步和备份操作,所以想用微博来转换rss。数据输出。
  11年前自己做了一个,但是时间太长了,里面的数据结构已经完全改了,不能用了,于是上网搜了一下有没有现成的项目,发现那个github上面有一个项目可以使用,但是它的部署使用的是node.js,我之前没用过。
  我在国外购买的云服务器使用的是lnmp(linux-nginx-mysql-php)环境,web服务器是nginx,小巧稳定,占用资源很少。低配置服务器可以执行动态 网站@ &gt;。我只是尝试将此 node.js 项目部署到此服务器。
  服务器没有安装node.js,所以需要先安装环境。面板中有一个“pm2 manager”,是一个node.js manager。内置node.js + npm + nvm + pm2,一键安装。
  安装好环境后,按照项目说明开始手动部署,按照之前部署php的思路,部署到wwwroot下的一个目录下。从网页访问后,页面可以出来,但是RSS提示“获取数据失败”。
  后来咨询了项目作者,才发现项目部署到了​​3000端口,而不是nginx的80和443端口。我用3000端口的地址访问,可以正常获取数据。
  当然,最后还是希望能在nginx下使用。在 nginx 中设置反向代理并将目录映射到端口 3000 以访问端口 80 和 443 上的此 node.js 项目。
   查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(之前微博node.js是我之前没用过的吗?(组图)
)
  我之前一直在使用新浪微博的api进行数据同步。今年年初,1月8日左右,微博的api不知什么原因突然不可用,接口调用不断出现403错误。“开发平台”一直是机器回复。
  因此,我猜新浪微博关闭了它的api。我猜可能是因为微博太难赚钱了,所以向腾讯学习,封闭数据赚大钱。
  不过我在微博上贴了很多数据,但是微博到现在连数据备份都没有,所以我还是需要另找方法进行数据同步和备份操作,所以想用微博来转换rss。数据输出。
  11年前自己做了一个,但是时间太长了,里面的数据结构已经完全改了,不能用了,于是上网搜了一下有没有现成的项目,发现那个github上面有一个项目可以使用,但是它的部署使用的是node.js,我之前没用过。
  我在国外购买的云服务器使用的是lnmp(linux-nginx-mysql-php)环境,web服务器是nginx,小巧稳定,占用资源很少。低配置服务器可以执行动态 网站@ &gt;。我只是尝试将此 node.js 项目部署到此服务器。
  服务器没有安装node.js,所以需要先安装环境。面板中有一个“pm2 manager”,是一个node.js manager。内置node.js + npm + nvm + pm2,一键安装。
  安装好环境后,按照项目说明开始手动部署,按照之前部署php的思路,部署到wwwroot下的一个目录下。从网页访问后,页面可以出来,但是RSS提示“获取数据失败”。
  后来咨询了项目作者,才发现项目部署到了​​3000端口,而不是nginx的80和443端口。我用3000端口的地址访问,可以正常获取数据。
  当然,最后还是希望能在nginx下使用。在 nginx 中设置反向代理并将目录映射到端口 3000 以访问端口 80 和 443 上的此 node.js 项目。
  

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

网站优化优采云 发表了文章 • 0 个评论 • 71 次浏览 • 2022-03-07 21:00 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博的API弄,也就没弄它。)
  一年前,我使用清华的数据集进行数据挖掘。看了新浪微博的API,不知道怎么做,所以没做。今年没想到需要再次采集数据。不能用清华。只需要自己弄清楚。
  其实最标准简洁的描述就在这里:去新浪微博开放平台,创建站内应用,获取App Key和App Secret后,去下载Java SDK,按照“如何使用”在本页。 "按照描述的步骤进行操作。
  但我不明白。
  我在网上参考了很多文章,主要是这一篇:博主的文笔也不错。我又按照这一步,基本成功了,但还是走了一些弯路。在这里我把我的亲身经历和心得贴出来供大家阅读。但同时也有不明白的地方,请多多指教。
  首先要下载新浪微博SDK。我用的是java,所以我下载了java版本的SDK。地址在这里:
  下载、解压并倒入MyEclipse项目。我直接用MyEclipse,不知道能不能用Eclipse,好像没什么区别。
  本项目中有各种API调用示例,只要有accessToken即可。但是现在关键是没有accessToken。以下是获取accessToken的方法。
  下一步是创建一个新浪微博应用程序。应用创建后才能获取accessToken。
  创建一个新的应用程序,创建一个“现场应用程序”。我第一次弄错了,创建了一个没有成功获取accessToken的移动应用程序。站内应用在网页顶部,将鼠标移动到“微连接”二字,下方弹出的四个应用,选择“站内应用”,跳转到站内应用,单击以创建应用程序。
  先填写应用名称,然后“填写所有内容”。之前的博客是这样写的。我知道要填什么,但不知道怎么填。
  主要混淆在这里:如何写“站点地址”,以及如何写“应用程序实际地址”。事实上,给站点地址添加一个后缀就足够了。有的人在“申请实际地址”里填的是自己网页的地址,我填。这似乎无关紧要。但是如果填写的地址是一个不存在的网页,我不知道会发生什么。总之,我用的是百度的O。
  创建后,现在可能处于测试阶段,此时应该可以尝试获取accessToken。当然,我是在完成后获得了申请信息。如果我没有完整地写它,我认为它不会影响它。但不能保证。
  注册应用后会有一个App Key和一个App Secret,记下来。
  然后,打开我们刚刚导入 MyEclipse 的项目。
  首先,你需要在项目中设置你的应用的App Key和App Secret。具体方法是打开项目中的src/config.properties,将之前记录的App Key和App Secret填入client_ID和client_SECRET,将之前填写的“应用实际地址”填入redrect_URI,保存。
  然后,点击examples/weibo4j.examples/oauth2/OAuth4Code.java,看到main方法中应该有这样的代码
  BareBonesBrowserLaunch.openURL(oauth.authorize("code",args[0],args[1]));
  System.out.println(oauth.authorize("code",args[0],args[1]));
  其实上面第二句可以忽略,只是输出语句而已。
  将上面两句中的args[0]和args[1]都改成“”(即空字符串)。
  运行,会打开一个界面,需要输入你创建应用时的微博账号密码进行授权。
  然后会跳转到之前设置的“应用实际地址”,和我一样会跳转到百度首页。
  此时,观察页面的URL,有一个code=XXX,复制code后面的东西。切换回MyEclipse,它输出了一句,最后是XXX[Enter]: 然后你把代码后面的字符串粘贴到控制台,回车,稍等片刻,会出来很多东西,最后一行会有一个图例 AccessToken 。
  这件事一定要写下来。
  那我就发微博了。详情请参考开头提到的博客。
  一般的方法是,在weibo4j.examples.timeline包下,UpdateStatus类下,看main方法的前两行,修改代码(或者添加命令行参数,随意),赋值access_token 到你刚刚记下的那个AccessToken,状态分配给你要发的微博,然后运行。
  用浏览器打开微博首页,你会发现一条新的微博帖子。
  与其他API函数类似,只需将access_token替换为之前获取的AccessToken字符串即可。
  如果要使用其他账号发布,需要反复执行OAuth4Code.java,然后填写另一个ID的账号密码进行授权,然后在密码后面输入一串信息,再获取另一个AccessToken。但是,在测试阶段,您可能需要先在我的应用中点击“应用信息”、“测试信息”,并在其中添加相应的账号。添加后,授权才会生效。
  注意:我没有亲自测试最后一段。只是猜测。 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博的API弄,也就没弄它。)
  一年前,我使用清华的数据集进行数据挖掘。看了新浪微博的API,不知道怎么做,所以没做。今年没想到需要再次采集数据。不能用清华。只需要自己弄清楚。
  其实最标准简洁的描述就在这里:去新浪微博开放平台,创建站内应用,获取App Key和App Secret后,去下载Java SDK,按照“如何使用”在本页。 "按照描述的步骤进行操作。
  但我不明白。
  我在网上参考了很多文章,主要是这一篇:博主的文笔也不错。我又按照这一步,基本成功了,但还是走了一些弯路。在这里我把我的亲身经历和心得贴出来供大家阅读。但同时也有不明白的地方,请多多指教。
  首先要下载新浪微博SDK。我用的是java,所以我下载了java版本的SDK。地址在这里:
  下载、解压并倒入MyEclipse项目。我直接用MyEclipse,不知道能不能用Eclipse,好像没什么区别。
  本项目中有各种API调用示例,只要有accessToken即可。但是现在关键是没有accessToken。以下是获取accessToken的方法。
  下一步是创建一个新浪微博应用程序。应用创建后才能获取accessToken。
  创建一个新的应用程序,创建一个“现场应用程序”。我第一次弄错了,创建了一个没有成功获取accessToken的移动应用程序。站内应用在网页顶部,将鼠标移动到“微连接”二字,下方弹出的四个应用,选择“站内应用”,跳转到站内应用,单击以创建应用程序。
  先填写应用名称,然后“填写所有内容”。之前的博客是这样写的。我知道要填什么,但不知道怎么填。
  主要混淆在这里:如何写“站点地址”,以及如何写“应用程序实际地址”。事实上,给站点地址添加一个后缀就足够了。有的人在“申请实际地址”里填的是自己网页的地址,我填。这似乎无关紧要。但是如果填写的地址是一个不存在的网页,我不知道会发生什么。总之,我用的是百度的O。
  创建后,现在可能处于测试阶段,此时应该可以尝试获取accessToken。当然,我是在完成后获得了申请信息。如果我没有完整地写它,我认为它不会影响它。但不能保证。
  注册应用后会有一个App Key和一个App Secret,记下来。
  然后,打开我们刚刚导入 MyEclipse 的项目。
  首先,你需要在项目中设置你的应用的App Key和App Secret。具体方法是打开项目中的src/config.properties,将之前记录的App Key和App Secret填入client_ID和client_SECRET,将之前填写的“应用实际地址”填入redrect_URI,保存。
  然后,点击examples/weibo4j.examples/oauth2/OAuth4Code.java,看到main方法中应该有这样的代码
  BareBonesBrowserLaunch.openURL(oauth.authorize("code",args[0],args[1]));
  System.out.println(oauth.authorize("code",args[0],args[1]));
  其实上面第二句可以忽略,只是输出语句而已。
  将上面两句中的args[0]和args[1]都改成“”(即空字符串)。
  运行,会打开一个界面,需要输入你创建应用时的微博账号密码进行授权。
  然后会跳转到之前设置的“应用实际地址”,和我一样会跳转到百度首页。
  此时,观察页面的URL,有一个code=XXX,复制code后面的东西。切换回MyEclipse,它输出了一句,最后是XXX[Enter]: 然后你把代码后面的字符串粘贴到控制台,回车,稍等片刻,会出来很多东西,最后一行会有一个图例 AccessToken 。
  这件事一定要写下来。
  那我就发微博了。详情请参考开头提到的博客。
  一般的方法是,在weibo4j.examples.timeline包下,UpdateStatus类下,看main方法的前两行,修改代码(或者添加命令行参数,随意),赋值access_token 到你刚刚记下的那个AccessToken,状态分配给你要发的微博,然后运行。
  用浏览器打开微博首页,你会发现一条新的微博帖子。
  与其他API函数类似,只需将access_token替换为之前获取的AccessToken字符串即可。
  如果要使用其他账号发布,需要反复执行OAuth4Code.java,然后填写另一个ID的账号密码进行授权,然后在密码后面输入一串信息,再获取另一个AccessToken。但是,在测试阶段,您可能需要先在我的应用中点击“应用信息”、“测试信息”,并在其中添加相应的账号。添加后,授权才会生效。
  注意:我没有亲自测试最后一段。只是猜测。

使用新浪微博开放平台api同步微博内容至自己网站(微博开放平台注册开发者并获取app和appsecret百度很容易)

网站优化优采云 发表了文章 • 0 个评论 • 78 次浏览 • 2022-03-06 17:15 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(微博开放平台注册开发者并获取app和appsecret百度很容易)
  简介本文章主要介绍微博开放平台api的使用(示例代码)及相关经验与技巧,文章约7015字,371页浏览量,8个赞,值得推荐!
  前言:微博开放平台为微博数据提供api接口,我们不仅可以直接调用微博服务发布微博,通过api查询微博,更重要的是,你可以自己获得新浪微博网站的授权api,调用微博的一些内容,就像我们在网站文章中看到的,想在微博或者其他社交网站上分享,非常方便。
  下面我们来一探究竟。
  1.注册开发者,获取app key和app secret
  百度很容易找到微博开放平台的入口,登录你的微博账号,点击账号头像,会提示你编辑开发者信息。
  
  可以看到如下页面,按照提示填写即可,紧急联系人可以自己填写,网站无所谓,百度填写。
  
  提交后需要在我的app下实名认证。上传图片时请耐心等待,有点慢,没有上传进度。上传后点击返回跳转到新页面:
  
  根据需要选择并创建您自己的应用程序。至于这里的各种应用名词的含义,我也不是很清楚,也很熟悉。我选择另一个应用程序
  
  
  创建后,您将收到一封收录应用密钥和应用密码的电子邮件。这是获得授权的关键。
  2.获取令牌
  点击首页的api接口,会跳转到api接口说明文档页面,你会发现api有很多功能,包括创建微博、删除微博、关注/取消关注等很多接口,但是每个接口都需要一个令牌。使用权。令牌从何而来?
  首先,你需要得到一个代码,其次,你需要一个URL来调用接口(因为我正在申请一个web应用程序)。
  设置关联的 URL:
  
  单击您的应用名称,然后在左侧菜单中找到高级信息,您可以对其进行编辑。
  
  点击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值。如果返回错误,请查看错误信息或百度错误信息。
  之后,您只需要携带令牌即可请求各种接口。虽然有次数限制,但应该足够正常使用了。
  后记:
  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.如果把开放的api嵌入到自己的网站中,一般做法是:在分享微博按钮(第三方登录按钮)上,发送微博授权认证,用户点击授权后网页,后台获取code,根据code获取token。之后,如果需要提取微博的用户名,可以直接在后台发送请求。如果分享到微博,也可以通过api来完成。
  如果以后在实践中用到这些功能,做个记录,本文到此结束。
  来自 Wiz 笔记 (Wiz) 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(微博开放平台注册开发者并获取app和appsecret百度很容易)
  简介本文章主要介绍微博开放平台api的使用(示例代码)及相关经验与技巧,文章约7015字,371页浏览量,8个赞,值得推荐!
  前言:微博开放平台为微博数据提供api接口,我们不仅可以直接调用微博服务发布微博,通过api查询微博,更重要的是,你可以自己获得新浪微博网站的授权api,调用微博的一些内容,就像我们在网站文章中看到的,想在微博或者其他社交网站上分享,非常方便。
  下面我们来一探究竟。
  1.注册开发者,获取app key和app secret
  百度很容易找到微博开放平台的入口,登录你的微博账号,点击账号头像,会提示你编辑开发者信息。
  
  可以看到如下页面,按照提示填写即可,紧急联系人可以自己填写,网站无所谓,百度填写。
  
  提交后需要在我的app下实名认证。上传图片时请耐心等待,有点慢,没有上传进度。上传后点击返回跳转到新页面:
  
  根据需要选择并创建您自己的应用程序。至于这里的各种应用名词的含义,我也不是很清楚,也很熟悉。我选择另一个应用程序
  
  
  创建后,您将收到一封收录应用密钥和应用密码的电子邮件。这是获得授权的关键。
  2.获取令牌
  点击首页的api接口,会跳转到api接口说明文档页面,你会发现api有很多功能,包括创建微博、删除微博、关注/取消关注等很多接口,但是每个接口都需要一个令牌。使用权。令牌从何而来?
  首先,你需要得到一个代码,其次,你需要一个URL来调用接口(因为我正在申请一个web应用程序)。
  设置关联的 URL:
  
  单击您的应用名称,然后在左侧菜单中找到高级信息,您可以对其进行编辑。
  
  点击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值。如果返回错误,请查看错误信息或百度错误信息。
  之后,您只需要携带令牌即可请求各种接口。虽然有次数限制,但应该足够正常使用了。
  后记:
  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.如果把开放的api嵌入到自己的网站中,一般做法是:在分享微博按钮(第三方登录按钮)上,发送微博授权认证,用户点击授权后网页,后台获取code,根据code获取token。之后,如果需要提取微博的用户名,可以直接在后台发送请求。如果分享到微博,也可以通过api来完成。
  如果以后在实践中用到这些功能,做个记录,本文到此结束。
  来自 Wiz 笔记 (Wiz)

使用新浪微博开放平台api同步微博内容至自己网站(新浪微博OAuth认证流程)

网站优化优采云 发表了文章 • 0 个评论 • 72 次浏览 • 2022-03-06 17:15 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博OAuth认证流程)
  很多网站都有第三方账号登录的功能(现在基本是通过OAuth2.0实现的),如果你自己的网站或者项目想要实现这样的功能,那就是其实很简单。以下是新浪微博提供的开放API的说明。
  1、去微博开放平台申请appkey和appsecret,填写各类信息
  2、程序开发
  新浪微博开放平台提供SDK下载,我们可以在里面使用现成的新浪微博OAuth认证类,类名为SaeTOAuthV2。
  我提供了一个现成的下载,里面不仅收录了SaeTOAuthV2类,还为新浪微博的各种接口封装了一个操作类SaeTClientV2。其实我们不需要它,或者我们可以根据它提供的API来构建它。自己的班级。(我使用的是php语言)
  1)新浪微博OAuth认证流程的第一步是引导用户进入新浪微博OAuth认证页面,所以我们需要获取这个页面的url。
  
  再说说$callback_url,意思是新浪会在认证后跳转到你指定的url页面,你可以在这个页面上处理认证的结果。另外,我们一般使用代码进行认证,就是getAuthorizeURL函数的第二个参数。其他认证方式可以参考新浪的文档。
  2)第二步,在回调页面$callback_url上处理认证结果。
  当用户登录并授权新浪微博OAuth认证页面时,会跳转到我们指定$callback_url的页面,在这个页面的url中会有一个code参数。这个参数是新浪给我们的。我们正在使用此代码参数的值来获取 access_token 令牌。
  
  注意我们得到的$token是一个数组,而$token['access_token']是真正的access_token令牌,我们可以把它存放在session等中以备日后调用。
  3) 第三步,通过access_token令牌,我们可以访问新浪微博提供的各种API接口。
  
  至于返回哪些api以及返回的结果,可以参考新浪的api文档,里面返回的是json数据。
  获取access_token令牌意味着我们可以通过api获取新浪微博用户的相关信息。利用这些信息,我们可以开发登录功能,比如绑定账号等。
  嗯,就是这么简单,一旦流程清晰,一切都会变得简单。 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(新浪微博OAuth认证流程)
  很多网站都有第三方账号登录的功能(现在基本是通过OAuth2.0实现的),如果你自己的网站或者项目想要实现这样的功能,那就是其实很简单。以下是新浪微博提供的开放API的说明。
  1、去微博开放平台申请appkey和appsecret,填写各类信息
  2、程序开发
  新浪微博开放平台提供SDK下载,我们可以在里面使用现成的新浪微博OAuth认证类,类名为SaeTOAuthV2。
  我提供了一个现成的下载,里面不仅收录了SaeTOAuthV2类,还为新浪微博的各种接口封装了一个操作类SaeTClientV2。其实我们不需要它,或者我们可以根据它提供的API来构建它。自己的班级。(我使用的是php语言)
  1)新浪微博OAuth认证流程的第一步是引导用户进入新浪微博OAuth认证页面,所以我们需要获取这个页面的url。
  
  再说说$callback_url,意思是新浪会在认证后跳转到你指定的url页面,你可以在这个页面上处理认证的结果。另外,我们一般使用代码进行认证,就是getAuthorizeURL函数的第二个参数。其他认证方式可以参考新浪的文档。
  2)第二步,在回调页面$callback_url上处理认证结果。
  当用户登录并授权新浪微博OAuth认证页面时,会跳转到我们指定$callback_url的页面,在这个页面的url中会有一个code参数。这个参数是新浪给我们的。我们正在使用此代码参数的值来获取 access_token 令牌。
  
  注意我们得到的$token是一个数组,而$token['access_token']是真正的access_token令牌,我们可以把它存放在session等中以备日后调用。
  3) 第三步,通过access_token令牌,我们可以访问新浪微博提供的各种API接口。
  
  至于返回哪些api以及返回的结果,可以参考新浪的api文档,里面返回的是json数据。
  获取access_token令牌意味着我们可以通过api获取新浪微博用户的相关信息。利用这些信息,我们可以开发登录功能,比如绑定账号等。
  嗯,就是这么简单,一旦流程清晰,一切都会变得简单。

使用新浪微博开放平台api同步微博内容至自己网站(腾讯微博开放平台正式上线,为开发者和用户提供开放数据分享与传播平台)

网站优化优采云 发表了文章 • 0 个评论 • 56 次浏览 • 2022-03-06 03:22 • 来自相关话题

  使用新浪微博开放平台api同步微博内容至自己网站(腾讯微博开放平台正式上线,为开发者和用户提供开放数据分享与传播平台)
  12月16日,腾讯微博开放平台正式上线。基于腾讯微博系统,为开发者和用户提供一个开放的数据共享和传播平台。广大开发者和用户登录平台后,可以利用平台提供的开放API接口创建应用程序,从微博系统中获取信息,或者向整个微博系统传播新的信息。就在几天前,新浪微博创新基金刚刚开始接受申请,主要面向新浪微博应用的创业者。由此可以看出,国内微博应用市场正在逐渐竞争,竞争也越来越激烈。
  据腾讯微博开放平台网站介绍,该开放平台基于腾讯微博系统,定位为开放数据共享传播平台。登录平台创建应用后,您可以通过从平台获取的应用App Key和App Secret,使用各种AP​​I实现丰富的应用功能。应用依赖用户账号访问其微博账号读写内容,首次使用时需要用户授权,系统授权使用Oauth机制。获得用户授权后,应用可以获取当前用户的用户名、头像图片、当前用户的听众和收听名单等信息,
  获得用户账号授权后,可以使用平台提供的API创建以下功能:
  快速分享内容到微博。腾讯微博用户关系开放,互动性强。通过用户之间的交互和传播,信息可以呈几何级数传播。传播的内容也会在微博网站上展示,用户点击链接后可以直接进入指定页面,起到为网站吸引流量的作用。基于微博互动建立用户关系。通过向用户展示最新的微博信息,并提供即时收听功能,帮助用户建立互动关系。平台提供的微博秀应用程序让您只需几行 HTML 代码,即可在 网站 上显示您的新微博更新。获取微博信息作为内容。您可以获取整个微博平台的最新微博信息,或者指定用户发布/收听的微博信息,并作为内容展示在您的网站/软件中。腾讯微博有很多名人和专业人士活跃,最新最真实的新闻可以作为内容。
  开发者构建微博应用后,可以将应用源字段提交给腾讯审核。应用提交审核通过后,应用发送的微博信息会在腾讯微博等应用中显示,并带有应用的来源字段和来源URL信息。当用户点击时,会打开网站,为网站带来流量。
  源字段的审计内容包括:
  来源字段 - 我们要从您的应用发布,来源名称“来自 ***” 来源链接显示在腾讯微博和其他微博 - 我们希望来自腾讯微博或其他微博的用户,点击时打开的网页的 URL
  查看源字段的提交标准:
  创建时间超过15天。接口调用累计超过10000次。用户授权数超过100。
  腾讯微博开放平台还提供了一些官方微博应用供开发者学习和使用,包括:
  一键直播——将一键直播嵌入到您的网站中,访问者可以直接将网页信息传播到腾讯微博。在分享信息的同时,用户可以通过源链接进入你的网站,从而增加流量。微博秀 - 使用微博秀,将生成的代码放在您的博客、网站 或其他支持html代码的位置,您可以向网络访问者展示您在腾讯微博上的最新广播和视频。观众。微博广播站 - 使用微博广播站,将生成的代码放在你的博客、网站或其他支持html代码的位置,不仅可以显示你最近的20条广播,登录腾讯微博后,你还可以也直接在这里写微博,让更多的人知道和倾听你。
  对于应用开发者最关心的开发平台API,详细说明见网站:
  API 文档 - 提供 API 接口 url、格式、http 请求方法等 Oauth 授权说明 - 介绍 Oauth 认证机制和请求授权方法 API 调用权限 - 说明不同权限的开发者可以调用的 API 范围,以及调用频率通话限制
  其中,值得关注的是开放平台对API读写频率的要求:
  一级授权
  读取请求:每个 API 单用户每小时 150 次(包括获取公共时间线、主页时间线等)
  写入请求:不可用中间授权读取请求:每个用户每小时每个 API 150
  写请求:每个用户每小时最多100次(包括推文、转播、对话、私信、收听等) 腾讯合作伙伴授权的读取请求:每个API单用户每小时5000次
  写请求:每个用户每小时最多400次(包括推特、转播、对话、私信、收听等)
  如果开发者认为 API 调用次数不够,腾讯对此进行了解释:
  首先,微博API技术是一种HTTP轮询(POLLING)协议,而不是通过实时推送获取信息。为了保证用户能够获取到最新的微博信息,需要调用API定时阅读。根据实际微博信息更新统计,建议阅读频率控制在1分钟/次以上,或者通过:
  如果用户数量过多,当前对 API 调用频率的限制是不够的。在您的申请数据达到相应标准后,您可以通过电子邮件申请更高级别的通话权限。审核通过后,官方会进行调整。您可以查看应用程序当前的API调用权限级别。
  微博应用市场近期火爆。就在几天前,InfoQ 中文站刚刚报道了新浪微博开发者创新基金向微博应用创业者敞开大门:
  2亿元规模的中国微博开发者创新基金正式开始接受申请,为中国的中小型创业公司或个人创业者提供一个施展才华的平台……(基金)旨在聚焦新浪微博平台 公司第三方应用开​​发者提供风险投资,同时为开发者提供必要的创业相关指导,帮助开发者加速实现创业梦想。基金投资项目的单笔投资金额主要在300万以下,但对较高的投资金额没有限制。应用开发项目要求为:已在新浪微博开放平台申请APP密钥的开发者,
  由此可见,随着微博的火爆,互联网企业开始关注这个市场,鼓励第三方开发和部署微博应用。一方面可以增加自己微博的知名度,另一方面可以将自己的微博分享给第三方。博市有望盈利“蛋糕”。无论是腾讯微博开放平台还是新浪微博创新基金,都是微博应用开发者迎来大发展的好机会。InfoQ中文站也将继续关注相关动态。 查看全部

  使用新浪微博开放平台api同步微博内容至自己网站(腾讯微博开放平台正式上线,为开发者和用户提供开放数据分享与传播平台)
  12月16日,腾讯微博开放平台正式上线。基于腾讯微博系统,为开发者和用户提供一个开放的数据共享和传播平台。广大开发者和用户登录平台后,可以利用平台提供的开放API接口创建应用程序,从微博系统中获取信息,或者向整个微博系统传播新的信息。就在几天前,新浪微博创新基金刚刚开始接受申请,主要面向新浪微博应用的创业者。由此可以看出,国内微博应用市场正在逐渐竞争,竞争也越来越激烈。
  据腾讯微博开放平台网站介绍,该开放平台基于腾讯微博系统,定位为开放数据共享传播平台。登录平台创建应用后,您可以通过从平台获取的应用App Key和App Secret,使用各种AP​​I实现丰富的应用功能。应用依赖用户账号访问其微博账号读写内容,首次使用时需要用户授权,系统授权使用Oauth机制。获得用户授权后,应用可以获取当前用户的用户名、头像图片、当前用户的听众和收听名单等信息,
  获得用户账号授权后,可以使用平台提供的API创建以下功能:
  快速分享内容到微博。腾讯微博用户关系开放,互动性强。通过用户之间的交互和传播,信息可以呈几何级数传播。传播的内容也会在微博网站上展示,用户点击链接后可以直接进入指定页面,起到为网站吸引流量的作用。基于微博互动建立用户关系。通过向用户展示最新的微博信息,并提供即时收听功能,帮助用户建立互动关系。平台提供的微博秀应用程序让您只需几行 HTML 代码,即可在 网站 上显示您的新微博更新。获取微博信息作为内容。您可以获取整个微博平台的最新微博信息,或者指定用户发布/收听的微博信息,并作为内容展示在您的网站/软件中。腾讯微博有很多名人和专业人士活跃,最新最真实的新闻可以作为内容。
  开发者构建微博应用后,可以将应用源字段提交给腾讯审核。应用提交审核通过后,应用发送的微博信息会在腾讯微博等应用中显示,并带有应用的来源字段和来源URL信息。当用户点击时,会打开网站,为网站带来流量。
  源字段的审计内容包括:
  来源字段 - 我们要从您的应用发布,来源名称“来自 ***” 来源链接显示在腾讯微博和其他微博 - 我们希望来自腾讯微博或其他微博的用户,点击时打开的网页的 URL
  查看源字段的提交标准:
  创建时间超过15天。接口调用累计超过10000次。用户授权数超过100。
  腾讯微博开放平台还提供了一些官方微博应用供开发者学习和使用,包括:
  一键直播——将一键直播嵌入到您的网站中,访问者可以直接将网页信息传播到腾讯微博。在分享信息的同时,用户可以通过源链接进入你的网站,从而增加流量。微博秀 - 使用微博秀,将生成的代码放在您的博客、网站 或其他支持html代码的位置,您可以向网络访问者展示您在腾讯微博上的最新广播和视频。观众。微博广播站 - 使用微博广播站,将生成的代码放在你的博客、网站或其他支持html代码的位置,不仅可以显示你最近的20条广播,登录腾讯微博后,你还可以也直接在这里写微博,让更多的人知道和倾听你。
  对于应用开发者最关心的开发平台API,详细说明见网站:
  API 文档 - 提供 API 接口 url、格式、http 请求方法等 Oauth 授权说明 - 介绍 Oauth 认证机制和请求授权方法 API 调用权限 - 说明不同权限的开发者可以调用的 API 范围,以及调用频率通话限制
  其中,值得关注的是开放平台对API读写频率的要求:
  一级授权
  读取请求:每个 API 单用户每小时 150 次(包括获取公共时间线、主页时间线等)
  写入请求:不可用中间授权读取请求:每个用户每小时每个 API 150
  写请求:每个用户每小时最多100次(包括推文、转播、对话、私信、收听等) 腾讯合作伙伴授权的读取请求:每个API单用户每小时5000次
  写请求:每个用户每小时最多400次(包括推特、转播、对话、私信、收听等)
  如果开发者认为 API 调用次数不够,腾讯对此进行了解释:
  首先,微博API技术是一种HTTP轮询(POLLING)协议,而不是通过实时推送获取信息。为了保证用户能够获取到最新的微博信息,需要调用API定时阅读。根据实际微博信息更新统计,建议阅读频率控制在1分钟/次以上,或者通过:
  如果用户数量过多,当前对 API 调用频率的限制是不够的。在您的申请数据达到相应标准后,您可以通过电子邮件申请更高级别的通话权限。审核通过后,官方会进行调整。您可以查看应用程序当前的API调用权限级别。
  微博应用市场近期火爆。就在几天前,InfoQ 中文站刚刚报道了新浪微博开发者创新基金向微博应用创业者敞开大门:
  2亿元规模的中国微博开发者创新基金正式开始接受申请,为中国的中小型创业公司或个人创业者提供一个施展才华的平台……(基金)旨在聚焦新浪微博平台 公司第三方应用开​​发者提供风险投资,同时为开发者提供必要的创业相关指导,帮助开发者加速实现创业梦想。基金投资项目的单笔投资金额主要在300万以下,但对较高的投资金额没有限制。应用开发项目要求为:已在新浪微博开放平台申请APP密钥的开发者,
  由此可见,随着微博的火爆,互联网企业开始关注这个市场,鼓励第三方开发和部署微博应用。一方面可以增加自己微博的知名度,另一方面可以将自己的微博分享给第三方。博市有望盈利“蛋糕”。无论是腾讯微博开放平台还是新浪微博创新基金,都是微博应用开发者迎来大发展的好机会。InfoQ中文站也将继续关注相关动态。

官方客服QQ群

微信人工客服

QQ人工客服


线