优采云接口开发文档(php版)

优采云 发布时间: 2016-08-19 00:41
/*本文为php版本的接口开发文档,其他语言文档后续陆续推出,敬请关注。*/

 本文主要讲述优采云接口文档的基本结构,让用户和开发者能够根据需要进行接口开发和修改。

接口文件组成
  • 鉴权接口(ucaiyun_Signature.php)
  • 发布接口(ucaiyun_Savearticle.php)

  两个接口文件必须同时放在网站根目录方能生效,且文件名不可修改。ucaiyun_Signature.php为优采云推送时直接访问的文件。ucaiyun_Savearticle.php,只被鉴权接口以include的形式运行,不直接被访问。

鉴权接口
  优采云平台为每个网站生成唯一的安全凭证,安全凭证包括apiname和apipass,用于在用户网站和优采云平台之间相互通信时进行签名验证,签名使用 HMAC-SHA1 算法。安全凭证、相关签名和鉴权算法都包含在ucaiyun_Signature.php文件中。
  ucaiyun_Signature.php文件除进行鉴权外,还负责与优采云服务器通信,并将返回的文章相关字段以数组形式发送给发布接口。
  鉴权接口通常无需修改,适用于任何php程序。
 
发布接口
  此接口用于把文章信息保存到网站数据库,并根据用户设置,进行生成静态、图片处理、自动内链、百度推送等操作。此接口文件中,开发者拥有完全的自由,可进行任意的操作。
 
字段说明
  鉴权接口将文章信息发送到发布接口,在发布接口中直接以$article数组调用。所有字段说明如下:
$article['arc_body']          /*文章正文*/
$article['arc_title'] /*文章标题*/
$article['arc_tags'] /*文章tags*/
$article['arc_writer'] /*用于显示的文章作者*/
$article['arc_source'] /*用于显示的文章来源*/
$article['arc_keywords'] /*文章关键词*/
$article['arc_description'] /*文章描述*/

$article['typeid'] /*文章对应站内栏目id*/
$article['source_keyword'] /*采集该文章使用的关键词*/
$article['source_link'] /*该文章采集自此链接*/

$article['auto_flag'] /*需要自动获取的文章属性*/
$article['download_pic'] /*图片处理方式:下载到服务器(1) 远程网址(0) 屏蔽图片(-1)*/
$article['arcrank'] /*是否自动审核 是(1) 否(0)*/
$article['ismake'] /*是否生成静态 是(1) 否(0)*/
$article['makeindex'] /*是否生成首页 是(1) 否(0)*/
$article['makelist'] /*是否生成栏目和列表页 是(1) 否(0)*/
$article['auto_sp_size'] /*自动分页大小 计算时应当算字符数,而非字节*/
$article['auto_inner_link'] /*是否自动内链 是(1) 否(0)*/

$article['baidutoken'] /*百度主动推送token*/
$article['fromcharset'] /*优采云平台的字符编码(UTF-8)*/
$article['mycharset'] /*目标网站设置的字符编码*/

编码说明
  • $article数组已自动转换为目标网站编码($article['mycharset']),请勿重复转换。
  • 接口文件编码为UTF-8、GBK、GB2312均可,默认为UTF-8,通常无需修改。
  • 发布接口ucaiyun_Savearticle.php中如涉及中文字符及标点插入到文章任何部分进入数据库,请转换到对应编码。如涉及有消息输出到前台,尽量使用英文,或将编码转换到与鉴权接口一致。

 
开始开发
  在ucaiyun_Savearticle.php中,直接使用$article变量获取返回的文章信息数组。注意,该数组中所有字段已自动转换为目标网站在优采云控制台设置的编码,请勿重复转换。以下代码:
<?php
file_put_contents('log.txt',var_export($article,true),FILE_APPEND);
?>
保存到ucaiyun_Savearticle.php后,每次收到文章时,会自动输出$article数组到log.txt文件中。
 
开发进阶
  为防止发布文档被其他文件错误调用,建议进行环境判断:
if (!defined('IN_CAIJIAPI')) exit;    /*IN_CAIJIAPI已在鉴权接口中定义*/
  为保证文章不会因为运行时间太长而丢失,建议不限php运行时间:
@set_time_limit(0);
  为保证在前端意外断开时,程序会继续执行直至文章保存完成,建议忽略用户退出:
@ignore_user_abort(true);
  接下来就可以进行相关处理操作,注意在写入数据库前做好安全检查。
  通常在保存文章之前应当执行以下处理:
  • 图片处理
  • 赋予文章自动属性
  • 自动分页
  • 自动内链

  在保存文章之后应当执行以下处理:
  • tags保存和关联
  • 生成静态
  • 百度主动推送

 建议发布接口按以下代码框架进行设计:
//判断运行环境
if (!defined('IN_CAIJIAPI')) exit;

//关闭错误提示
@ini_set('display_errors', '0');
error_reporting(0);

//不限运行时间
@set_time_limit(0);

//客户端退出后继续运行
@ignore_user_abort(true);

//此处引入程序公共文件
//以及设置一些必要参数

class SaveArticle{
var $article;
function SaveArticle($arc){
$this->__construct($arc);
}
function __construct($arc){
$this->article = $arc;
}
function run(){
//在保存文章前,执行图片本地化
$this->downloadImages();

//在保存文章前,执行内容分页
$this->splitPage();

//在保存文章前,执行自动内链
$this->setInnerLink();

//此处保存文章,具体逻辑根据您的需求和程序逻辑来写

//生成文章静态页面
$this->makeHtml();

//把文章网址推送给百度
$this->baiduPush();

//返回此消息给优采云,表示文章保存完成
echo 'Article Saved!';
}
function downloadImages(){
}

function splitPage(){
}

function setInnerLink(){
}

function makeHtml(){
}

function baiduPush(){
}
}
$SaveArticle = new SaveArticle($article);
$SaveArticle->run();

以上所有形式都只是推荐而非强制,只要保证能够正常接收和保存文章,任何形式的接口都是可以的。有任何问题,请在接口开发板块提出,或在本文档留言,欢迎踊跃讨论。
 
另:优采云官方5000积分收购不同程序的接口文档,有意请联系管理员。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线