总所周知,QQ 的服务是不会有 API 的,但是如何同步到 Qzone 呢?这里的过程有点曲折,由于 Qzone 支持通过你的 QQ 邮箱发布,而 QQ 邮箱有支持 SMTP 协议,而 WordPress 所包含的 PHPMailer 类可以使用 SMTP 发邮件,所以我们可以通过使用 PHPMailer 同步 WordPress 博客日志到 Qzone。
首先我们可以通过下面的函数登录 QQ 邮箱并给 Qzone 发邮件(你需要首先打开 QQ 邮箱的 SMTP 功能)。
function smtp_mailer_qqmail($subject,$body){ $qq_number = ''; $qq_password = ''; if ( !class_exists('PHPMailer') ) { require_once ABSPATH . WPINC . '/class-phpmailer.php'; require_once ABSPATH . WPINC . '/class-smtp.php'; } $mail = new PHPMailer(); $mail->IsSMTP(); $mail->Mailer = "smtp"; $mail->CharSet = 'utf-8'; $mail->Encoding = 'base64'; $mail->IsHTML(true); $mail->SMTPAuth = true; $mail->Host = "smtp.qq.com"; $mail->Username = $qq_number."@qq.com"; $mail->Password = $qq_password; $mail->From = $qq_number."@qq.com"; $mail->FromName = $qq_number; $mail->AddAddress($qq_number."@qzone.qq.com"); $mail->Subject = $subject; $mail->Body = $body; $mail->Send(); }
其中需要把 $qq_number
和 $qq_password
设置成你的 QQ 号码和密码。
然后我们就可以通过 publish_post
这个 WordPress Hook,当发布日志的时候同步吧日志标题和内容同步到 Qzone。
add_action('publish_post', 'publish_post_2_qzone', 0); function publish_post_2_qzone($post_ID){ $qzone = get_post_meta($post_ID, 'qzone', true); if($qzone) return; $post_title = trim($_POST['post_title']); $post_except = trim($_POST['post_except']); if($post_except){ $post_content = $post_except; }else{ $post_content = mb_substr(strip_tags(trim($_POST['post_content'])),0,220); } $post_content= $post_content.'<br />查看全文:<a href="'.get_permalink($post_ID).'">'.get_permalink($post_ID).'</a>'; smtp_mailer_qqmail($post_title,$post_content); add_post_meta($post_ID, 'qzone', 'true', true); }
总结下:
- 打开 QQ 邮箱的 SMTP 功能。
- 下载同步到 Qzone 插件:WP2Qzone。
- 上传到 WordPress 插件目录中下并激活。
- 把插件中的
$qq_number
和$qq_password
设置成你的 QQ 号码和密码。 - 这样只要你一发布日志就会自动更新到 Qzone 中。
原文: http://fairyfish.net/2009/12/04/wp-qzone/