Я пытаюсь написать простой PHP-скрипт, который автоматически устанавливает новые Etherpad (см. http://etherpad.com/).
У них нет API (пока) для создания новых пэдов, поэтому я пытаюсь понять, могу ли я сделать что-то по-другому.
Поэкспериментировав, я обнаружил, что если вы добавите случайную строку в etherpad.com к еще не созданному пэду, он вернется с формой с вопросом, хотите ли вы создать новый etherpad по этому адресу , Если вы отправите эту форму, по этому URL будет создан новый планшет.
Тогда я подумал, что мог бы просто создать скрипт PHP с использованием CURL, который продублировал бы эту форму и обманул etherpad в создании нового планшета по любому URL, который я ему дал. Я написал сценарий, но пока не могу заставить его работать. Может кто-нибудь сказать мне, что я делаю не так?
Во-первых, вот HTML-форма на странице создания etherpad:
`
<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"/>
`
Тогда вот мой код, который пытается отправить форму, используя CURL
$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 не создает мой пэд. Любые подсказки, что происходит?