OscPress

WordPress插件开发: 文章同步到OSC博客插件(OscPress) (二)

落花浮王杯 提交于 2019-11-28 12:22:54
在 上一篇文章 我们讲了wordpress设置页的编码,这篇文章里我们讲oauth2鉴权,也就是从osc open api中获取access token的过程。有了access token ,我们才能调用osc的相关接口。 原理和流程请先阅读 http://www.oschina.net/openapi/docs ,你首先需要理解这个流程,然后才能考虑用wordpress实现。其中上一节出现的 $this->callback_url = add_query_arg('callback', 'oscpress', site_url()); 就是你填在osc open api中的回调url http://域名?callback=oscpress。首先我们向构造函数里添加两个新的action, add_action('query_vars', array(&$this, 'add_query_vars')); add_action("parse_request", array(&$this, 'callback')); 接下来我们来写回调的方法: // 增加一个新的公共查询参数 public function add_query_vars($public_query_vars) { $public_query_vars[] = 'callback'; return $public

WordPress插件开发: 文章同步到OSC博客插件(OscPress) (四)

有些话、适合烂在心里 提交于 2019-11-28 12:22:44
本文通过 OscPress 同步至oschina,最新版本请查看原文: https://www.cellmean.com/?p=1005 今天测试OscPress时发现了一些问题,aceess token失效了,token的授权没有到失效时间,可能是osc那边重置了。从文档知道用失效的token请求api时,会返回40x的错误,按照restful api, 我想当然地以为是把错误号会放在响应码的。但是osc open api并不是这样的,它是放在body里的,因为一些浏览器会针对响应码做自己的处理,所以osc 不把错误号放响应头可以理解。 测试了一下,如果token出错了,WP_Http 请求返回的内容是这样的,并不会返回WP_Error. array(5) { ["headers"]=> array(7) { ["server"]=> string(7) "Tengine" ["connection"]=> string(5) "close" ["date"]=> string(29) "Tue, 12 Jul 2016 06:39:25 GMT" ["cache-control"]=> string(8) "no-store" ["content-type"]=> string(30) "application/json;charset=utf-8" ["www