我正在尝试编写一个自动设置新的etherpad的简单PHP脚本(请参阅http://etherpad.com/)。使用PHP和CURL创建新的etherpad
他们没有API(尚未)创建新的垫,所以我想弄清楚我是否可以用另一种方式做事。
在玩过一些游戏后,我发现如果你将一个随机字符串附加到etherpad.com到一个尚未创建的pad中,它会返回一个表单,询问你是否想要创建一个新的etherpad地址。如果您提交该表单,则会在该网址上创建新的便笺本。
我的想法是,我可以使用CURL创建一个PHP脚本,该脚本将复制该表单,并在任何给它的URL处欺骗etherpad以创建新的pad。我写了脚本,但到目前为止我无法使它工作。有人能告诉我我做错了什么吗?
首先,这里的EtherPad的创建页面上的HTML表单:
`
<p><tt id="padurl">http://etherpad.com/lsdjfsljfa-fdj-lsdf</tt></p>
<br/>
<p>There is no EtherPad document here. Would you like to create one?</p>
<input type="hidden" value="lsdjfsljfa-fdj-lsdf" name="padId"/>
<input type="submit" value="Create Pad" id="createPad"/>
`
然后这里是我的代码,试图利用提交表单卷曲
$ch = curl_init();
//set POST variables
$url = "http://etherpad.com/ep/pad/create?padId=ldjfal-djfa-ldkfjal";
$fields = array(
'padId'=>urlencode("ldjfal-djfa-ldkfjal"),
);
$useragent="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)";
// set user agent
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value; }
print_r($fields_string);
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
//execute post
$result = curl_exec($ch);
print_r($result);
//close connection
curl_close($ch);
当我运行该脚本时,PHP报告返回一切正常执行,但etherpad不创建我的垫。任何线索发生了什么?
不错,我从来没有见过EtherPad的面前,伟大的应用程序,感谢信息。 – Jakub 2009-11-09 19:37:48