如何利用SAE发布一个定时微博应用

创建微博应用框架

首先,在Sina APP中创建一个新应用,例如:crontest

 图片3.jpg

应用创建完成后,进入应用向导,选择社会化应用。

选择安装新浪微博OAuth框架。出现如下对话框:

选择应用,安装为新版本,输入版本号1。下一步在对话框中输入申请到的新浪微博APPKey和微博APPSecret后点下一步完成微博框架的搭建。

二.获得用户授权

打开Sina App Engine SDK(以下简称SDK),选择下载全部Apps,得到以下四个文件:

用文本编辑器打开SDK安装目录下的apps/crontest/1/code目录下的callback.php,在最后添加如下两行语句:

<br />oauth_token = <? echo $_SESSION['last_key']['oauth_token'];?><br />

oauth_token_secret = <? echo $_SESSION['last_key']['oauth_token_secret'];?>

保存文件后,在SDK中选择上传。然后,在浏览器中打开http://crontest.sinaapp.com/ ,用自己的微博帐号登录,可以得到类似这样的值:

oauth_token = 2e80b439846fdc1caf46a9be03bf5018

oauth_token_secret = 67f48f6ba716ded70d1334a81199a2b6

三.编写发送微博程序

callback.php相同目录下创建新文件,命名为crontest.php,输入以下代码:

<?php

include_once( 'config.php' );

include_once( 'saet.ex.class.php' );

$c = new SaeTClient( WB_AKEY , WB_SKEY , 2e80b439846fdc1caf46a9be03bf501867f48f6ba716ded70d1334a81199a2b6 );

$now = date('Y-m-d H:i:s',time());

$c->update( "现在是北京时间:".$now);

?>

在浏览器中打开http://crontest.sinaapp.com/crontest.php,结果应该是个空白页面,啥都没有。这是因为,作为一个定时程序,是由系统定时执行的,因此页面输出没啥意义。登录自己的微博帐号,就会发现,系统以你的名义自动产生了一条新的微博。

四.设定时间

接着,我们来设定时间,让系统自动执行这个程序。用文本编辑器打开apps/crontest/1/目录下的config.yaml文件,输入以下内容:

---

name: crontest

version: 1

accesskey: ee5l12mrtw

cron:

    - description: cron test

    url: crontest.php

    schedule: every days of month 7:50

    timezone: Beijing

...

最后,在SDK中选择上传,虽然列表中看不到这个config.yaml文件,但是没关系,文件应该能上传成功。这样,每天早晨7:50的时候,都会自动产生一条新微博。关于设置时间更详细的内容,参见:

http://sae.sina.com.cn/?m=devcenter&catId=26#anchor_981f67ed22c70ce0e39996ea82c80916