Twitter申请API试用权限注册在开放平台登录后的界面
优采云 发布时间: 2021-05-04 19:19
Twitter申请API试用权限注册在开放平台登录后的界面
新浪微博开放平台简介新浪微博开放平台的系统是指Twitter。两者非常相似,包括接口参数的定义请求方法等。如果您熟悉Twitter的API,则基本上可以同时应用于新浪微博开放平台。本文档技术部分的信息可以也适用于Twitter新浪微博开放平台。 网站当前仅页面的一部分向匿名用户开放。新浪微博开放平台的官方微博已在此处开放申请API试用许可。登录平台后可以看到的界面如下。您可以选择创建一个应用程序。您需要设置应用程序名称,应用程序地址等。创建后,您可以在“我的应用程序”菜单中查看该应用程序和用户数。系统将为该应用程序分配一个A*敏*感*词*EY和APPSECRET。这两个字符串非常重要,将在以后的身份验证或信息交换中使用。应用程序的详细信息页面分为多个授权级别。它们是普通授权,中间授权,高级授权和合作伙伴授权。您可以在此处查看详细权限。信息使用伙伴授权没有请求限制,普通授权可能会意外导致ServerLimit。开放式身份验证平台上有两种身份验证方法。一个是BasicAuth,另一个是OAuthHTTPAuth1BasicAuthBasicAuth。简单的解释是,每次请求API时都会向用户提供。用户名和密码,例如curl-uuserpassword-dquotsource10001ampstatusapitesttest“这种方法的优缺点是显而易见的。优点是非常易于使用。开发和调试工作很简单。没有复杂的页面跳转逻辑和交互过程。它更有利于发起者的控制。缺点。安全性低。每次都需要传递用户名和密码可能会在很大程度上监视和窃取用户名和密码。同时,应用程序需要在本地保存用户名和密码。应用程序本身的安全性也存在很大的问题。开放平台服务提供商超出了自身的安全性。考虑到第三方可以获取服务提供商用户的帐户和密码,这对服务提供商存在安全风险。将来也将限制此身份验证方法。 Twitter计划在六月停止对BasicAuth的支持。如果用户更改了用户名和密码,则需要再次进行操作。密码验证过程2OAuthOAuth为用户资源的授权提供了安全和开放的标准,将来开发平台通常会遵循该标准。目前,Twitter,新浪,微博,豆瓣,谷歌等提供了支持。它分为几个交互过程。 1应用程序使用A*敏*感*词*EY和APPSECRET交换为OAuth_token2。应用程序会将用户定向到服务提供商的页面以授权此OAuth_token,这可能需要输入用户名和密码。 3服务提供商的页面将跳回到应用程序应用程序,然后转到服务提供商以根据参数获取AccessToken。 4使用此AccessTok可以如上所述访问API
OAuth身份验证过程的过程如下图所示。 OAuth的优点是安全性高。用户的帐户和密码只需要提供一次,并在服务提供商的页面上提供,以防止由于BasicAuth重复传输密码而造成的安全风险。访问令牌访问权限仅限于被盗的应用程序,不会影响服务提供商中用户的其他服务。 AccessToken可以随时被吊销,即使它受到监视和丢失也是如此。与密码不同,它可能会被他人篡改。如果用户更改密码,则不会影响应用程序的正常使用。对于分析,请参考此文章标准文档。新浪微博开放平台提供多种类型的身份验证页面。例如,下图显示了标准授权页面弹出窗口类型授权页面。开放平台的API接口基本上是RESTFU1。该方法给出了具有统一参数和响应格式的实际开发示例。 BasicAuth我将以两种方式使用PHP和Perl。 OAuth除了命令行之外,我还将使用PHP和Javascript进行全面的说明。 1BasicAuth用户身份验证用户身份验证接口是accountverifycredentialsjson数据访问方法,curl-uuidpassworduid可以是用户在新浪的用户名或用户号。通过命令行执行的结果如下。命令行请求用户身份验证界面是PHP在curl模式下请求此界面的代码示例。 username_POST [“用户名] password_POST [”密码] paramvalidatecurlcurl_initcurl_setoptcurlCURLOPT_URLquotquotcurl_setoptcurlCURLOPT_RETURNTRANSFER1curl_setoptcurlCURLOPT_USERPWDquotusernamepasswordquotdatacurl_execcurlcurl_closecurl如果Perl的方式可以在Perl的LWPCurl尝试和WWWCurl模块中实现或简单地用下面的代码执行系统实施例myjsoncurl-uusernamepassword-dcount3-dsince_idsince_id实现如果认证成功返回。如果用户的个人信息无法通过身份验证,将返回错误消息,例如ltxmlversionquot10quotencodingquotUTF-8quotgtlthashgtltrequestgtaccountverify_credentialsxmlltrequestgtlterror _codegt400lter
ror_codegtlterrorgtErrorsourceparamtera*敏*感*词*eyismissinglterrorgtlthashgt2BasicAuth的好友消息获取是获取所关注用户的最新消息列表的最常用功能之一。 API的主要参数包括since_idmax_idcountpage。常用的count和since_idcount表示检索到的消息数,since_id表示从哪条消息开始。如果要执行增量更新功能,则可以每次记录最新消息的ID,然后使用的ID。该消息为since_id,以通过命令行请求接口,如下图所示。在返回的json数据中获取消息的结果如下:quotfollowersquot5quotdmquot0quotmentionsquot1quotquotsquotes24OAuth方法使用PHP开发OAuth新浪微博应用程序实际上相对简单,因为开放平台提供了供开发人员使用的SDK,请参见地址,但在示例中使用_ SERVER [SCRIPT_URI]可能有问题。您需要使用HTTP_HOST和REQUEST_URI来构造完整的路径。在这里我主要想介绍新浪微博在本地应用模式下基于HTML和Javascript的应用。以Maxthon浏览器插件的实现为例。有一些问题需要解决。首先,Ajax跨域问题。当我们通过Javascript从本地请求新浪微博API时,它们都是跨域解决方案。 1使用PHP作为域访问代理。当然,这种方法不是纯粹的局部方法。应用2使用诸如动态脚本标签之类的Ajax跨域方法3如果是Maxthon插件,这不是问题,因为浏览器插件可以跨域访问远程地址。第二个加密算法问题。 OAuth请求需要签名。需要算法。支持新浪微博开放平台的文档建议使用HMAC-SHA1方法。 js有一个sha1类库,该类库实现了常用的SHA1加密算法。在内部使用b64_hmac_sha1方法来获取符合格式的签名。第三个页面跳转问题是OAuth中的过程中的第一步是从Sina用户授权页面跳转到应用程序的回调页面。对于本地应用程序,此过程存在问题。以Maxthon浏览器为例,该页面以本地文件的形式打开。文件此页面不存在。 Internet上的地址,因此当文件通过后台重定向时,文件开头的地址将用作新浪用户授权页面的回调地址。它无法解析该页面的地址,也不能跳转到相应的本地页面。说该页面必须有确认信息
在指定的域名下,此问题很难解决,并且从浏览器端进行更改的代价太大。幸运的是,新浪微博授权API为不方便访问网页的应用程序提供了oauth_callback json方法,这仅有助于我们解决此问题。下图显示了该应用程序的结构。本地应用程序的系统结构配置页面用于帐户授权或授权取消。单击帐户授权以跳转到登录页面。登录页面首先需要从request_tokenAPI获取未经授权的令牌,然后在用户输入用户名和密码之后,将参数提交给authorizeAPI以获取验证程序,然后跳转到回调页面。回调页面基于访问者_tokenAPI的验证者和令牌来获得授权的令牌身份验证过程。令牌保存在本地cookie,本地文件浏览器和帐户配置中。需要此令牌消息展示页面可通过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_timestam pquotampoau
的用户信息
th_signature_methodquotencodeURIComponentoauth_signature_methodquotampoauth_signaturequotencodeURIComponentoauth_signaturequotampoauth_versionquotencodeURIComponentoauth_versionLiteIOajaxGetrequest_token_proxyargsset_oauth_token_callback实现对应用程序的新浪微博推送功能。根据新浪ltphpspushnewServerPush的说法,今天您在“单词”时间之间替换了显示消息“ Hellohoware”,并且单词之间出现了两个时间延迟,您好,今天,今天2gt,我很好奇地学习了Chrome插件新浪微博,但我惊讶地发现它没有使用任何新浪API基于页面爬网的实现也来自实现新浪微博插件的另一种想法。至于Twitter的实现,可以使用一个名为classtwitterphp的库来封装许*敏*感*词*,但是仍然存在一些缺陷。我个人考虑一下。已经进行了一些改进。附加新浪微博开放API状态列表public_timeline以获取最新更新的公共微博新闻statusesfriends_timeline以获取当前用户正在关注的用户的最新微博信息statusescomments_timeline获取当前用户发送和接收的评论列表statuscomments_by_me获取评论当前用户状态发送的评论获取指定微博状态计数的评论列表获取批状态中一组微博的评论和转发数量sunread根据ID获取当前用户状态显示的未读消息数获取单个微博信息用户塔
tusid根据微博ID和用户ID status跳转到单个微博页面,更新释放微博信息状态,上传图片,释放微博信息状态,删除微博信息状态,转发转发微博信息,可添加评论,状态对,微博信息发表评论statuscomment_destroy删除当前用户的微博评论信息statusreply回复微博评论信息usersshow根据用户ID授权用户statusfriends获取用户信息,获取当前用户的关注列表和最新的微博信息statusfollowers,获取当前用户的粉丝列表和最新微博消息direct_messages获取当前用户的最新私人消息列表direct_messagessent获取当前用户发送的最新私人消息列表direct_messagesnew发送私人消息direct_messagesdestroy删除私人消息详细信息friendids获取该用户的uid的uid列表欠对象followersids获取用户风扇对象的uid列表accountverify_credentials验证当前用户身份是否合法accountrate_limit_status获取当前用户API访问频率限制accountend_session当前用户注销accountupdate_profile_image更改配置文件图片accountupdate_profile更改配置文件accountregisterregister新浪微博帐户采集夹获取采集夹列表当前用户的采集夹创建添加采集夹的采集夹销毁删除当前用户的采集夹的微博信息oauthOAuth授权方法介绍oauthrequest_token获取未经授权的RequestTokenoauthauthorize请求用户授权Tokenoauthaccess_token获取授权的AccessTokenstatus微博信息用户用户*敏*感*词*信息评论注释信息描述direct_message私人消息信息省份和城市代码表取自quotquot