如何利用SAE发布一个定时微博应用
一. 创建微博应用框架
首先,在Sina APP中创建一个新应用,例如:crontest
![]()
应用创建完成后,进入应用向导,选择社会化应用。
选择安装新浪微博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 , 2e80b439846fdc1caf46a9be03bf5018, 67f48f6ba716ded70d1334a81199a2b6 );
$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