Twitter申请API试用权限注册在开放平台登录后可以看到的界面如下
优采云 发布时间: 2021-08-14 04:18
Twitter申请API试用权限注册在开放平台登录后可以看到的界面如下
新浪微博开放平台介绍 新浪微博开放平台的系统是指推特。两者非常相似,包括接口参数的定义请求方法等。如果你熟悉Twitter的API,基本上可以同时应用于新浪微博开放平台本文档技术部分的信息可以也适用于推特新浪微博开放平台网站为目前只有部分页面对匿名用户开放。新浪微博开放平台官方微博供您在这里申请API试用权限。在 Open 中注册 登录平台后可以看到的界面如下图所示。您可以选择创建应用程序。需要设置应用名称、应用地址等,创建后可以在我的应用菜单中看到应用和用户数。系统将为该应用程序分配一个 A*敏*感*词*EY 和 APPSECRET。这两个字符串非常重要,将在以后的身份验证或信息交换中使用。应用的详细信息页面分为多个授权级别。分为普通授权、中级授权、高级授权、合作伙伴授权。您可以在此处查看详细的权限。信息使用伙伴授权没有请求限制,普通授权可能会不小心造成ServerLimit。开放认证平台上有两种认证方式。一个是 BasicAuth,另一个是 OAuthHTTPAuth1BasicAuthBasicAuth。简单的解释是每次请求API时都会提供用户。用户名和密码如 curl-uuserpassword-dquotsource10001ampstatusapitestquot 这种方法的优缺点显而易见。优点是使用起来非常简单。开发调试工作简单。没有复杂的页面跳转逻辑和交互过程。更有利于发起者控制。缺点。安全性低。传递用户名和密码 用户名和密码在很大程度上可能会被监控和窃取。同时,应用程序需要在本地保存用户名和密码。应用本身的安全性也存在较大问题。开放平台服务商是出于自身的安全考虑。考虑到第三方可以获取服务提供商用户的账户密码,这对服务提供商来说是一种安全风险。这种身份验证方法将来也将受到限制。 Twitter 计划规划一个完整的创业计划。教育商业计划。商业计划。医疗项目计划。股权融资。项目计划将于 6 月停止对 BasicAuth 的支持。如果用户更改了用户名和密码,则需要重新检查密码。 2OAuthOAuth为用户资源的授权提供了安全、开放的标准,未来开发平台将普遍遵循。目前Twitter新浪微博、豆瓣、谷歌等都对其提供支持。它分为几个交互过程。 1 应用将 A*敏*感*词*EY 和 APPSECRET 交换为 OAuth_token 2 应用引导用户到服务商的页面授权 OAuth_token 可能需要输入用户名和密码 3 服务商的页面跳转回应用然后去服务商根据参数获取AccessTo
ken4 可以使用这个 AccessToken 来访问 API。上述过程如下图所示。 OAuth认证过程OAuth的优点是安全性高用户的账号和密码只需要提供一次,并在服务商页面提供,防止BasicAuth重复传输密码带来的安全隐患。令牌访问权限仅限于被盗应用程序,不会影响用户在服务提供商的其他服务。即使被监控丢失,也可以随时撤销。与可能被他人篡改的密码不同,用户不会更改密码。影响应用正常使用的具体OAuth分析在这个文章standard文档中有详细说明。新浪微博开放平台提供多种认证页面。例如下图为标准授权页面弹窗式授权页面开发开放平台API接口基本以RESTFUl的方式给出,统一参数和响应格式实际开发示例BasicAuth我会用到PHP和Perl两种方法OAuth我会使用PHP和Javascript两种方法并结合命令行给出一个全面的说明 1BasicAuth 用户认证 用户认证接口是Accountverifycredentialsjson 数据访问方式是curl-uuidpassworduid 可以是用户在新浪上的用户名或者用户号 结果通过命令行执行的方式如下: 命令行请求用户认证接口是PHP下面使用curl请求这个接口代码示例username_POST[„username]password_POST[„password]paramvalidatecurlcurl_initcurl_setoptcurlCURLOPT_URLquotcurl_setoptcurlCURLOPT_RETURNTRANSFER1curl_setoptcurlWDURLcurl_USER_USER l_curl,如果可以使用下面的命令实现WCurl_close_curl_curl_curl_curl_curl_curl_curl或者WCurl_close_curl_curl_curl_curl,可以使用下面的命令实现WCurl_setoptcurlCURLOPT_USERPWDcurl'dcount3-dsince_dsince_user_id'个人信息,如果认证成功,就会返回userid信息。如果认证失败,会返回ltxmlversionquot10quotencodingquotUTF-8quotgtlthashgtltrequestgtaccountverify_c等错误信息
redentialsxmlltrequestgtlterror_codegt400lterror_codegtlterrorgtErrorsourceparamtera*敏*感*词*eyismissinglterrorgtlthashgt2BasicAuth的好友消息获取好友消息获取是最常用的函数之一,用于获取您关注的用户的最新消息列表。 API的主要参数包括since_idmax_idcountpage,since_id是常用的消息数,since_id是取自开始的消息数,如果要做增量更新功能,可以记录每条最新消息的id时间,然后使用这条消息的id作为since_id通过命令行请求接口如下图。在返回的json数据中获取消息的结果如下:quotfollowersquot5quotdmquotmentionsquot1quotcommentsquot24OAuth方法用PHP开发OAuth新浪微博应用其实比较简单,因为开放平台提供了SDK供开发者使用,看地址,但是在例子中,使用_ SERVER[SCRIPT_URI] 可能有问题。您需要使用 HTTP_HOST 和 REQUEST_URI 来构建完整路径。这里主要想介绍一下新浪微博在本地应用模式下基于HTML和Javascript的应用。以傲游浏览器插件的实现为例。有几个问题需要解决。一、Ajax跨域问题。当我们通过Javascript从本地请求新浪微博API时,它们都是跨域解决方案。 1 使用 PHP 作为域访问代理。当然,这种方法并不是纯粹的本地化。应用 2 使用动态Script标签等Ajax跨域方法 3 如果是傲游插件,这不是问题,因为浏览器插件可以跨域访问远程地址。第二个加密算法问题。 OAuth 请求需要签名。需要算法。支持新浪微博开放平台的文档推荐使用HMAC-SHA1方式。 Node.js 有一个 sha1 库,它实现了常用的 SHA1 加密算法。使用里面的b64_hmac_sha1方法得到符合格式的签名。第三个页面跳转问题是在OAuth的过程中,第一步是从新浪用户授权页面跳转到应用的回调页面。这个过程对于本地应用程序是有问题的。以傲游浏览器为例,页面以本地文件的形式打开。文件 此页面不存在。网络上的地址所以
当文件开头的地址作为新浪用户授权页面的回调地址时,通过后台重定向。无法解析这个页面的地址,也不能跳转到对应的本地页面,也就是说这个页面必须在某个域名下。这个问题很难解决,而且从浏览器端修改成本太高。好在新浪微博授权API为不方便访问网页的应用提供了oauth_callback json方法,正好帮助我们解决了这个问题。应用程序的结构如下图所示。本地应用的体系结构配置页面用于账户授权或取消授权。点击账号授权跳转到登录页面。登录页面首先从request_tokenAPI获取未授权token,然后在用户输入用户名和密码后,将参数提交给authorizeAPI获取verifier。然后跳转到回调页面。回调页面基于验证者和token到access_tokenAPI获取授权token认证流程。令牌保存在本地cookies、本地文件浏览器账户配置等中,每次收到消息或发布消息时,都需要使用此令牌消息显示。通过定时刷新模式或增量更新页面更新用户信息Ajax页面获取request_token以下核心代码functionget_request_tokenvarparam_arr [quotoauth_consumer_keyquotoauth_consumer_keyquotoauth_noncequotoauth_noncequotoauth_signature_methodquotoauth_signature_methodquotoauth_timestampquotoauth_timestampquotoauth_versionquotoauth_version] base_stringoauth_methodquotampquotencodeURIComponentrequest_token_apiquotampquotencodeURIComponentparam_arrjoinquotampquotoauth_signatureb64_hmac_sha1app_secretquotampquotbase_stringquotquotargsquotoauth_consumer_keyquotencodeURIComponentoauth_consumer_keyquotampoauth _
noncequotencodeURIComponentoauth_noncequotampoauth_timestampquotencodeURIComponentoauth_timestampquotampoauth_signature_methodquotencodeURIComponentoauth_signature_methodquotampoauth_signaturequotencodeURIComponentoauth_signaturequotampoauth_versionquotencodeURIComponentoauth_versionLiteIOajaxGetrequest_token_proxyargsset_oauth_token_callback傲游塞的简单效果新浪微博如图开放平台的应用 - 傲游插件推的图,并抓住上述结构建设计划市场营销计划模板建筑施工程序施工解决方案施工组织设计的例子(构建方案)基于应用自身的爬取方式,需要定期进行,以实现新浪微博对应用的推送功能。根据新浪 ltphpspushnewServerPush „replacedisplaythemessagequotHellohowareyoutodayquotonewordatatimewithatwoseconddelaybetweenwordsspush-grotatearray„Hello„how„are„youtoday2gt others 我很好奇我研究了 SinaTwitter 的 Chrome 插件,惊讶地发现它没有使用任何新浪的 API。它完全基于页面抓取。这也是实现新浪微博插件的另一个思路。至于 Twitter 应用程序的实现,可以使用类twitterphp。类库已经封装了很*敏*感*词*,但是还是有一些不完善的地方。我个人对其进行了一些改进。附上新浪微博开放API列表获取最新更新的公开微博新闻 statusfriends_timeline 获取用户的最新微博关注当前用户 信息别名 statushome_timelinestatusesuser_timeline 获取用户发布的微博信息列表statusmentions 获取微博列表当前用户statuscomments_timeline 获取当前用户发送和接收的评论列表 statuscomment_by_me获取当前用户发送的评论
评论状态comments 获取指定微博的评论列表statuscounts 批量获取一组微博的评论数和转发数 statussunread 获取当前用户的未读消息数 根据ID获取单个微博的信息userstatusid 根据微博ID和用户ID跳转到单个微博页面 statusesupdate 发微博 statusesupload 上传图片发微博 statusdestroy 删除微博 statusesrepost 转发微博可以给微博添加评论 statuscomment_destroy delete当前用户的微博评论信息状态回复微博评论信息根据用户ID获取*敏*感*词*授权用户状态好友获取当前用户的关注列表和最新的微博信息状态关注者获取当前用户的粉丝列表和最新的微博信息获取当前用户的最新信息私信列表 direct_messagessent 获取t当前用户 发送最新私信列表 direct_messagesnew 发送私信 direct_messages销毁私信 用户身份是否合法 accountrate_limit_status 获取当前用户API访问频率限制 accountend_session 当前用户登出 accountupdate_profile_image 更改*敏*感*词*图片 accountupdate_profile 更改*敏*感*词*帐户register 注册新浪微博account rites 获取当前用户的采集列表 添加采集的favoritesdestroy 删除当前用户采集的微博信息 授权方式介绍 oauthrequest_token 获取未授权 RequestTokenoauthauthorize 请求用户授权 Tokenoauthaccess_token 获取授权微博信息 用户*敏*感*词*信息 评论 评论信息 描述 direct_message 私信信息 省市代码表取自quotquot